Использование отношений

Создание связей типа "многие-ко-многим"

Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Проверьте, как это работает!

Что такое связь "многие-ко-многим"?

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

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

  • В таблице "Заказы" указаны заказы, сделанные разными клиентами из таблицы "Клиенты". Каждый клиент мог сделать несколько заказов.

  • В таблице "Продукты" указаны продаваемые товары, каждый из которых может фигурировать в нескольких заказах из таблицы "Заказы".

  • Каждый продукт может входить в один заказ как в одном, так и в нескольких экземплярах.

Например, в заказ Арины Ивановой № 1012 могут входить продукты № 12 и 15, а также пять продуктов № 30.

Создание связи "многие-ко-многим"

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

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

Ниже рассмотрим пример, когда в заказ Арины Ивановой № 1012 входят продукты № 12, 15 и 30. Это значит, что записи в таблице "Сведения о заказах" выглядят следующим образом:

Номер заказа

Код продукта

1012

12

1012

15

1012

30

Арина заказала по одному продукту № 12 и 15, а также пять продуктов № 30. Создать другие строки с номером заказа 1012 и кодом продукта 30 нельзя, потому что поля "Номер заказа" и "Код продукта" вместе составляют первичный ключ, а первичные ключи должны быть уникальными. Вместо этого можно добавить в таблицу "Сведения о заказах" поле "Количество".

Номер заказа

Код продукта

Количество

1012

12

1

1012

15

1

1012

30

5

Создание промежуточной таблицы

  1. Выберите Создание > Таблица.

  2. Выберите Сохранить Сохранение.

  3. Укажите описательное имя таблицы. Чтобы подчеркнуть назначение таблицы, можете включить в ее имя слова связующая или промежуточная.

Создание полей в промежуточной таблице

В качестве первого столбца таблицы Access автоматически добавляет поле идентификатора. Измените имя этого поля на идентификатор вашей первой таблицы в связи "многие-ко-многим". Например, если первая таблица называется "Заказы", поле "Код" в ней переименовано в "Номер заказа", и его первичный ключ — число, измените имя поля "Код" в новой таблице на "Номер заказа", а в качестве типа данных выберите Числовой.

  1. В режиме таблицы выберите заголовок столбца Код и введите новое имя поля.

  2. Выберите переименованное поле.

  3. На вкладке Поля таблицы в разделе Тип данных выберите тип данных, соответствующий полю в исходной таблице, например Число или Короткий текст.

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

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

Объединение полей для создания первичного ключа

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

  1. Откройте промежуточную таблицу в режиме конструктора.

  2. Выберите обе строки с идентификаторами. (Если вы следовали предыдущим указаниям, это будут две первые строки.)

  3. Выберите Конструктор таблиц > первичный ключ.Значки клавиш отображаются рядом с обоими полями идентификаторов.

    Снимок экрана: первичный ключ в таблице

Соединение трех таблиц для создания связи "многие-ко-многим"

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

После этого связи должны выглядеть следующим образом:

Снимок экрана: связи между тремя таблицами в базе данных

Вам нужны дополнительные возможности?

Начало работы со связями между таблицами

Создание, изменение и удаление отношения

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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