Связь типа “много-ко-многим” (М:М)




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


14. Создание связей между таблицами. Схема Данных.

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

Создание:

1. Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.

2. и выбрать команду "Схема данных" из меню Сервис, появится активное диалоговое окно "Добавление таблицы" на фоне неактивного окна Схема данных.

3. Добавляются таблицы

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

Постоянные связи между таблицами устанавливаются в диалоговом окне Схема данных.

Схема данных – окно СУБД Access в котором связи таблиц отображаются в графическом виде.


15. Целостность данных. Каскадное обновление, каскадное удаление.

Целостность данных - это система правил Microsoft Access, которая используется для проверки допустимости отношений между записями связанных таблиц и для того, чтобы не позволить случайно удалить или изменить связанные данные. Настроить проверку целостности данных можно при соблюдении всех указанных ниже условий.

• Связываемое поле из главной таблицы является первичным ключом или имеет однозначный индекс.
• Связываемые поля должны иметь одинаковый тип данных. Существует два исключения. Поле типа "Счетчик" может быть связано с числовым полем, если для свойства FieldSize у него установлено значение "Длинное целое"; кроме того, можно связать поле "Счетчик" с числовым полем, если у них обоих для свойства FieldSize задано значение "Код репликации".
• Обе таблицы принадлежат к одной и той же базе данных Microsoft Access. Если таблицы связаны, то они должны иметь формат Microsoft Access, а для настройки целостности данных необходимо открыть ту базу данных, в которой они хранятся. Обеспечить целостность данных для таблиц, находящихся в базах данных другого формата, невозможно.

Если в процессе создании связи установить флажок каскадное обновление связанных полей, то при любом изменении значения первичного ключа записи в главной таблице Microsoft Access автоматически обновит значение соответствующего поля во всех связанных записях. Например, при изменении ИД клиента в таблице "Клиенты" поле "Клиент" в таблице "Заказы" автоматически обновится для всех заказов этого клиента, чтобы сохранить связь. Microsoft Access выполнит каскадное обновление без вывода дополнительных сообщений.

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

Если в процессе создания связи установить флажок каскадное удаление связанных записей, то при удалении любой записи из главной таблицы Microsoft Access автоматически удалит связанные записи и в связанной таблице. Например, если удалить запись клиента из таблицы "Клиенты", то все заказы данного клиента будут автоматически удалены из таблицы "Заказы" (включая записи таблицы "Сведения о заказе", связанные с записями таблицы "Заказы"). При удалении записей из формы или таблицы с установленным флажком каскадное удаление связанных записей Microsoft Access предупреждает, что связанные записи также будут удалены. Однако при удалении записей с помощью запроса на удаление Microsoft Access автоматически удалит записи из связанных таблиц без вывода предупреждения.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: