Типы связей между таблицами (визуальные инструменты для баз данных)

Связь работает путем сопоставления данных в ключевых столбцах; обычно это столбцы с одним и тем же именем в обеих таблицах. В большинстве случаев связь сопоставляет первичный ключ одной таблицы, являющийся уникальным идентификатором каждой строки этой таблицы, с записями внешнего ключа другой таблицы. Например продажи книг можно связать с названиями проданных книг и создать связь между столбцом title_id таблицы titles (первичный ключ) и столбцом title_id таблицы sales (внешний ключ).

Существует три типа связей между таблицами. Тип создаваемой связи зависит от того, как определены связанные столбцы.

  • Связи «один ко многим»

  • Связи «многие ко многим»

  • Связи «один к одному»

Связи «один ко многим»

Связь «один ко многим» самая распространенная. В этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Например, между таблицами publishers и titles установлена связь «один ко многим»: каждый издатель публикует много книг, но каждая книга публикуется только у одного издателя.

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

Столбец, являющийся первичным ключом в связи «один ко многим», отмечается символом ключа. Столбец, являющийся внешним ключом в связи «один ко многим», отмечается символом бесконечности.

Связи «многие ко многим»

В связи «многие ко многим» строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Такие связи создаются определением третьей таблицы, которая называется таблицей соединения, чей первичный ключ состоит из внешних ключей А и Б. Например, между таблицами authors и titles связь «многие ко многим» определена через связи «один ко многим» каждой из этих таблиц с таблицей titleauthors. Первичный ключ таблицы titleauthors представляет собой сочетание столбца au_id (первичный ключ таблицы authors) и столбца title_id (первичный ключ таблицы titles).

Связи «один к одному»

В связи «многие к одному» строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот. Связь «один к одному» создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности.

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

  • Разделения таблицы со многими столбцами.

  • Изоляции части таблицы из соображений безопасности.

  • Хранения кратковременных данных, которые можно легко удалить вместе со всей таблицей.

  • Хранения данных, которые относятся только к части основной таблицы.

Столбец, являющийся первичным ключом в связи «один к одному», отмечается символом ключа. Столбец, являющийся внешним ключом, также отмечается символом ключа.