2.2.3. Отношение "многие ко многим"


Хорошим примером такого отношения является отношение между таблицей авторов и таблицей книг. Одна книга может быть написана несколькими авторами, один автор может написать несколько книг (рис. 2.3).


В таблице авторов "код автора" — искусственный (а может быть и обычный, созданный по принятым в издательстве правилам) первичный ключ. Для таблицы книг можно использовать первичный ключ "код книги".

Реализация отношения "многие ко многим" осуществляется добавлением в базу данных третьей, связующей, таблицы и установлением двух необходимых связей "один ко многим".
В данном примере добавляется связующая таблица между таблицей книг и таблицей авторов. Устанавливаются отношения "один ко многим" между книгой и связующей таблицей и "один ко многим" между автором и связующей таблицей (рис. 2.4).


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

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

Надо сказать, что в библиографических информационно-поисковых системах такие отношения ("многие ко многим"), реализуемые при помощи добавления связующих таблиц, встречаются постоянно. Например, отношение "книга-переводчик", "книга научный редактор", "книга-ключевое слово". А вот отношение "книга-издательство" является отношением "один к одному". 

Похожие новости

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.