MS Access - связь "многие-ко-многим"
В этой главе давайте разберемся с отношениями «многие ко многим». Чтобы представить отношение «многие ко многим», вы должны создать третью таблицу, часто называемую таблицей соединений, которая разбивает отношение «многие ко многим» на два отношения «один ко многим». Для этого нам также нужно добавить соединительный стол. Давайте сначала добавим еще одну таблицуtblAuthers.
Давайте теперь создадим many-to-many relationship. У нас более одного автора работают более чем над одним проектом, и наоборот. Как вы знаете, у нас есть поле Author в tblProjects, поэтому мы создали для него таблицу. Это поле нам больше не нужно.
Выберите поле «Автор» и нажмите кнопку «Удалить», и вы увидите следующее сообщение.
Нажмите Yes. Теперь нам нужно создать соединительный стол. В этой соединительной таблице есть два внешних ключа, как показано на следующем снимке экрана.
Эти поля внешнего ключа будут первичными ключами из двух таблиц, которые были связаны вместе: tblAuthers и tblProjects.
Чтобы создать составной ключ в Access, выберите оба эти поля и в table tools design На вкладке, вы можете щелкнуть непосредственно по этому первичному ключу, и это отметит не одно, а оба этих поля.
Комбинация этих двух полей и есть tables’ unique identifier. Давайте теперь сохраним эту таблицу какtblAuthorJunction.
Последний шаг на пути к объединению отношений "многие ко многим" - вернуться к этому. relationships view и создайте эти отношения, нажав на Show Table.
Выберите три выделенные выше таблицы и нажмите кнопку «Добавить», а затем закройте это диалоговое окно.
Щелкните и перетащите AuthorID поле из tblAuthors и поместите его поверх tblAuthorJunction стол AuthorID.
Создаваемые вами отношения будут рассматриваться Access как отношения «один ко многим». Мы также будем обеспечивать ссылочную целостность. Давайте теперь включимCascade Update и нажмите на Create кнопку, как на скриншоте выше.
Давайте теперь держим ProjectID, перетащите его прямо поверх ProjectID из tblAuthorJunction.
Мы будем Enforce Referential Integrity и Cascade Update Related Fields.
Ниже приведены отношения "многие ко многим".