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

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

Браузер не поддерживает видео. Установите 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. Выберите Конструктор > Ключевое поле.
    Рядом с обоими полями появится значок ключа.

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

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

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

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

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

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

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

Создание связи

Удаление связи

Обучение работе с Excel

Обучение работе с Outlook

Отношения «многие ко многим» применяются, когда один элемент таблицы А может быть связан со множеством элементов таблицы Б и наоборот. Например, товар может входить во множество заказов, а заказ может содержать множество товаров.

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

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

Чтобы создать отношение «многие ко многим», сначала нужно создать еще одну таблицу.

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

Промежуточная таблица также называется связующей.

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

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

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

Теперь откроем таблицы «Товары» и «Заказы».

Взглянем на первичные ключи обеих таблиц. В таблице «Товары» используется поле «ИД товара» с типом данных Счетчик.

Первичный ключ для таблицы «Заказы» называется «ИД заказа». Он также имеет тип данных Счетчик.

Теперь возвращаемся к связующей таблице, вводим имя поля «ИД товара», выбираем тип данныхЧисловой, вводим имя «ИД заказа» и снова выбираем тип данных Числовой.

Теперь выделим оба поля. Для этого наведите указатель на серый прямоугольник рядом с любым из этих полей и перетащите его.

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

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

Нажмите клавиши CTRL+S, чтобы сохранить связующую таблицу. Назовите ее «Сведения о заказе».

Теперь мы можем создать отношения. Для начала закройте все открытые таблицы. Выберите Работа с базами данных > Схема данных.

На вкладке Конструктор выберите элемент Добавление таблицы. Добавьте таблицы «Сведения о заказе», «Заказы» и «Товары». Закройте диалоговое окно.

Разместите таблицы так, чтобы связующая таблица «Сведения о заказе» была посередине. Перетащите поле «ИД заказа» из таблицы «Заказы» в связующую таблицу.

В диалоговом окне Изменение связей установите флажок Обеспечение целостности данных и нажмите кнопку Создать, чтобы создать отношение.

Выполните те же действия с полем «ИД товара». Установите флажок Обеспечение целостности данных, нажмите кнопку Создать — и все готово.

Нажмите клавиши CONTROL+S, чтобы сохранить изменения в схеме данных.

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

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×