/ / Коли використовувати стовпці та коли окрема таблиця? - Design Database - база даних, дизайн бази даних, реляційна база даних, схема бази даних

Коли використовувати стовпчики і коли окрема таблиця? - Design Database - база даних, дизайн бази даних, реляційна база даних, схема бази даних

Більшість людей не рекомендують EAV, і я знаю деякі причини. Однак якою є різниця між підходом до ЄВА та таким підходом?

Таблиця комп'ютер:

id, price, description

Таблиця з'єднання:

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

Таблиця connections_computer

comp_id, conn_id

Або це теж EAV? Якщо так, то яка буде нормалізованою альтернативою?

Подумайте, що я хочу виконувати такі пошукові запити:

Всі комп'ютери, що мають БІЛЬШ LAN та HDMIз'єднання У такому випадку мені потрібен атрибут 1 join / filter, коли його буде як 1 колонка / атрибут, пошук буде легким, але я маю б багато значень NULL.

Будь-яка рекомендація, як це зробити?

Відповіді:

0 для відповіді № 1

Ваш приклад - простота багатьох для багатьох. В EAV ан назва атрибута це вартість колонки, а не бути ім'я колонки. Наприклад,

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")
;

буде підхід EAV.

Ось приклад від ціни, яку ви платите за підхід EAV (гнучкість) в СУБД.