[SQL] Хранить связи

kruzer25

Как быстрее будет работать?
Варианты:
1) Поля a_id, b_id, объединённые в первичный ключ;
2) Поля id (первичный ключ); a_id, b_id, объединённые в уникальный ключ?
Ну и, конечно, в обоих вариантах - индекс на a_id и на b_id.

gopnik1994

имхо одна фигня, но имхо не стоит заводить лишних полей там, где они не нужны...

oleg701

Имхо сильно зависит от БД.
Например не все СУБД нормально переваривают длинные текстовые ключи, снижается производительность.
Тогда имеет смысл ввести отдельный числовой ключ.
Если a_id и b_id - числа, то лучше пользовать вариант 1 и не плодить лишних сущностей.

kruzer25

a_id и b_id - числа.
Раньше использовал именно первый вариант, но почему-то во всех чужих решениях вижу именно второй... вот и задумался, а чем он так хорош (точнее, чем так плох первый что все его используют?

Flack_bfsp

Кто все? Вот я тоже всегда первый вариант использую. Это, имхо, как раз стандартное решение.

6yrop

+1

9173306234

первый вариант, если, конечно, нет необходимости хранить в какой-нибудь таблице атрибут, указывающий на данную связь, или создавать схему согласно Дейту.
Оставить комментарий
Имя или ник:
Комментарий: