/ / Kiedy używać kolumn i oddzielnej tabeli? - Projektowanie baz danych - baza danych, projektowanie baz danych, relacyjna baza danych, schemat bazy danych

Kiedy używać kolumn i oddzielnej tabeli? - Projektowanie bazy danych - baza danych, projektowanie baz danych, relacyjna baza danych, schemat bazy danych

Większość ludzi nie poleca EAV i znam niektóre z powodów. Jaka jest jednak różnica pomiędzy podejściem EAV a takim podejściem?

Stół komputer:

id, price, description

Stół znajomości:

id, name (possible values: LAN, USB, HDMI, ..., all all about 10)

Stół connections_computer

comp_id, conn_id

Czy to też jest EAV? Jeśli tak, jaka byłaby znormalizowana alternatywa?

Rozważ, że chcę wyszukiwać w ten sposób:

Wszystkie komputery, które mają ZARÓWNO LAN i HDMIpołączenie. W tym przypadku potrzebowałbym 1 atrybutu łączenia / filtrowania, mając go jako 1 kolumnę / atrybut, wyszukiwanie byłoby łatwe, ale miałbym wiele wartości NULL.

Jakieś zalecenia, jak to zrobić?

Odpowiedzi:

0 dla odpowiedzi № 1

Twój przykład to zwykłe wiele do wielu. w EAV na nazwa atrybutu jest wartość kolumny, zamiast być Nazwa kolumny. Na przykład,

computer: {computer_id, attr_name, attr_value}

insert into computer (computer_id, attr_name, attr_value)
values
(1, "connection", "HDMI")
, (1, "connection", "USB")
, (1, "memory", "2 GB")
;

byłoby podejściem EAV.

Oto przykład ceny, którą płacisz za podejście EAV (elastyczność) w RDBMS.