Поделиться через


Типы связей между таблицами

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

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

Примечание

Новая версия конструктора таблиц отображается для баз данных в формате SQL Server 2012. В этом разделе описывается старая версия конструктора таблиц, которая используется с базами данных в более ранних форматах SQL Server.

В новой версии определение таблицы можно изменить через графический интерфейс или непосредственно в области скриптов. Если вы используется графический интерфейс, определение таблицы автоматически обновляется в области скриптов. Чтобы применить код SQL в области скриптов, нажмите кнопку Обновить. Дополнительные сведения о новой версии см. в разделе Как создавать объекты базы данных с помощью конструктора таблиц.

Связи "Один ко многим"

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

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

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

Связи "многие ко многим"

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

Связи "один к одному"

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

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

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

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

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

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

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

См. также

Основные понятия

Общие сведения о ссылочной целостности

Другие ресурсы

Общие сведения о работе со связями

Работа с ключами