Типы связей между таблицами
Связь действует путем сопоставления данных в ключевых столбцах; обычно это столбцы с одним и тем же именем в обеих таблицах.В большинстве случаев связь сопоставляет первичный ключ одной таблицы, являющийся уникальным идентификатором каждой строки этой таблицы, с записями внешнего ключа другой таблицы.Например продажи книг можно связать с названиями проданных книг и создать связь между столбцом title_id в таблице titles (первичный ключ) и столбцом title_id в таблице sales (внешний ключ).
Существует три типа связей между таблицами.Тип создаваемой связи зависит от того, как определены связанные столбцы.
Связи "Один ко многим"
Связи "многие ко многим"
Связи "один к одному"
Примечание |
---|
Новая версия конструктора таблиц отображается для баз данных в формате SQL Server 2012. В этом разделе описывается старая версия конструктора таблиц, которая используется с базами данных в более ранних форматах SQL Server. В новой версии определение таблицы можно изменить через графический интерфейс или непосредственно в области скриптов. Если вы используется графический интерфейс, определение таблицы автоматически обновляется в области скриптов. Чтобы применить код SQL в области скриптов, нажмите кнопку Обновить. Дополнительные сведения о новой версии см. в разделе Как создавать объекты базы данных с помощью конструктора таблиц. |
Связи "Один ко многим"
Связь "один ко многим" — самая распространенная.В этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А.Например, между таблицами publishers и titles установлена связь "один ко многим": каждый издатель выпускает множество изданий, но конкретное издание выпускается только одним издателем.
Используйте связь "один ко многим" в том случае, если только у одного из связанных столбцов есть ограничение первичного ключа или уникальности.
Столбец, являющийся первичным ключом в связи "один ко многим", отмечается символом ключа.Столбец, являющийся внешним ключом в связи "один ко многим", отмечается символом бесконечности.
Связи "многие ко многим"
В связи "многие ко многим" строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот.Такие связи создаются путем определения третьей таблицы, которая называется таблицей соединения, первичный ключ которой состоит из внешних ключей А и Б.Например, между таблицами authors и titles связь "многие ко многим" определена через связи "один ко многим" каждой из этих таблиц с таблицей titleauthors.Первичный ключ таблицы titleauthors представляет собой сочетание столбца au_id (первичный ключ таблицы authors) и столбца title_id (первичный ключ таблицы titles).
Связи "один к одному"
В связи "один к одному" строке таблицы А может сопоставляться только одна строка таблицы Б и наоборот.Связь "один к одному" создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности.
Этот тип связи обычно не используется, так как большую часть связанных таким образом данных можно хранить в одной таблице.Связь "один к одному" можно использовать для следующих целей:
Разделение таблицы со многими столбцами.
Изоляция части таблицы из соображений безопасности.
Хранение кратковременных данных, которые можно легко удалить вместе со всей таблицей.
Хранения данных, которые относятся только к части основной таблицы.
Столбец, являющийся первичным ключом в связи "один к одному", отмечается символом ключа.Столбец, являющийся внешним ключом, также отмечается символом ключа.
См. также
Основные понятия
Общие сведения о ссылочной целостности