Три таблицы, ключи во всех🔑

На мок-собесе я попросил ученика связать сотрудников и филиалы ветклиники. Сотрудник может работать в нескольких филиалах, значит связь многие ко многим.

Промежуточную таблицу он нарисовал сразу, это хорошо. А потом на всякий случай положил id филиала ещё и в Сотрудников, а id сотрудника в Филиалы.

Ошибка частая. Многие ко многим собирается из двух связей один ко многим, а при один ко многим ключ всегда уходит на сторону многих. Здесь эта сторона - промежуточная таблица, в ней оба ключа и живут:

Филиалы (id, название, адрес) Сотрудники (id, имя, телефон) Филиалы_сотрудников (id_филиала, id_сотрудника)

Лишний id филиала в Сотрудниках вмещает только один филиал, и в схеме появляются две версии правды: одна в промежуточной таблице, другая в карточке сотрудника. Рано или поздно они разойдутся.

Проверка простая: когда промежуточная таблица появилась, в связываемых таблицах ключей друг друга быть не должно.

А вы промежуточной таблице даёте свой id или обходитесь составным ключом?🤔

Три таблицы, ключи во всех🔑 | Сетка — социальная сеть от hh.ru