2.5.3. Связь один ко многим
Следует еще раз отметить, что связь один к одному в рассмотренном примере нелогична. Связь такого типа оправдана, например, для связывания таблиц с личными данными студента и его успеваемостью.
В нашем случае более логично сформировать связь один ко многим: ведь каждое издательство может издавать множество книг.
Формирование и описание такой связи реализуется по аналогии с предыдущим примером. Только теперь связываются первичный ключ «Код издательства» таблицы «Издательства» и внешний ключ «Код издательства» таблицы «Книги» (рисунок 2.19):

Рис. 2.19. Формирование связи один ко многим
В этом случае автоматически формируется связь один ко многим, что видно из комментария в нижней части окна.
Установленные флажки имеют тот же смысл, что и в предыдущем примере. Они означают, что при формировании записи о книге допустимо ссылаться только на существующее (ранее описанное) издательство; при изменении «Кода издательства» в таблице «Издательства» автоматически изменяются ссылки на издательства в таблице «Книги»; при удалении записи из таблицы «Издательства» удаляются записи обо всех книгах, которые изданы в данном издательстве, из таблицы «Книги».
Внешний вид связи, как и в предыдущем случае, зависит от флажка «Обеспечение целостности данных» и параметров объединения. Единственное отличие заключается в появлении условного знака бесконечности на конце связи со стороны «многие», что видно из рисунка 2.20:

Рис. 2.20. Связь между таблицами один ко многим
Связь такого рода обычно предусматривается – в таблицах описываются соответствующие поля.
2.5.4. Связь многие ко многим
Для БД «Издательства-Книги» более логична связь многие ко многим. Действительно, различные издательства могут издавать одни и те же книги. И наоборот – одна и та же книга может издаваться в различных издательствах.
Для формирования связей такого типа вводится третья таблица, в которой задействованы первичные ключи первых двух таблиц. Если есть необходимость, в эту таблицу вводятся и другие поля. На рисунке 2.21 представлена такая связующая таблица в режиме конструктора.
Поля лучше назвать так же, как и в связываемых таблицах. Типы данных полей в нашем случае должны быть числовыми, их размер – длинное целое (как у счетчика). В свойствах полей «Индексированное поле» необходимо выбрать «Да (Допускаются совпадения)». Это связано с тем, что в таблице «Связи» значения данных полей могут повторяться – связь многие ко многим.

Рис. 2.21. Таблица «Связи» в режиме конструктора
После описания таблицы «Связи» ее следует включить в схему данных. Для этого необходимо загрузить схему данных, выбрать из контекстного меню команду «Добавить таблицу» и добавить таблицу «Связи» в схему данных. В результате появится окно, представленное на рисунке 2.22:

Рис. 2.22. Три таблицы для формирования связи многие ко многим
Теперь осталось сформировать связь один ко многим между таблицами «Издательства» и «Связи» и такую же связь – между таблицами «Книги» и «Связи». В результате получится схема данных, приведенная на рисунке 2.23:

Рис. 2.23. Схема данных со связью многие ко многим
между таблицами «Издательства» и «Книги»
Итак, между таблицами «Издательства» и «Книги» сформирована связь многие ко многим. При построении запроса на основе этой схемы данных можно просмотреть все издательства и книги, которые ими изданы.
MS Access – отношения один ко многим
Подавляющее большинство ваших отношений, скорее всего, будут отношениями один ко многим, где одна запись из таблицы потенциально может быть связана со многими записями в другой таблице.
Процесс создания отношения один-ко-многим точно такой же, как и при создании отношения один-к-одному.

Давайте сначала очистим макет, нажав опцию « Очистить макет» на вкладке «Дизайн» .

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

Нажмите на значок Сохранить и введите tblTasks в качестве имени таблицы и перейдите в представление Отношения .

Нажмите на опцию Показать таблицу .

Добавьте tblProjects и tblTasks и закройте диалоговое окно Показать таблицу .

Мы можем снова пройти тот же процесс, чтобы связать эти таблицы. Нажмите и удерживайте ProjectID из tblProjects и перетащите его до ProjectID из tblTasks. Кроме того, окно отношений появляется, когда вы отпускаете мышь.
Связь таблиц в Access
Вся информация, которую можно получить из систем управления базами данных (СУБД), собрана в разных таблицах. Это необходимо для предотвращения переизбытка информации. Выборка и последующая работа с необходимыми сведениями осуществляется с помощью механизма связывания. Именно о том, как в Access связать таблицы и пойдет речь в этой статье. Связь происходит по общему полю, для которого следует задать определенный тип данных. Изменения можно вносить как в исходную, так и в связанную таблицу – они в любом случае будут отображаться в обеих БД.
Пошаговая инструкция
- Откройте БД в программе (помните, что связать можно минимум 2 таблицы в Access).
- Заполните поля информацией, учитывая, что для осуществления операции, поля должны иметь схожий тип данных. Если созданная связь имеет формат «один ко многим», то поля в первой таблице могут иметь тип «Счетчика», а соответствующая ячейка во второй – должна быть числовой. В качестве ключевого следует задать именно счетчик.
- Откройте меню «Сервис/Схема данных» после чего на экране появится область со связанными элементами. Если же она пуста, то окно добавления таблиц откроется в Access автоматически.
- Для того чтобы включить связываемые таблицы Access в открытую БД, следует выделять необходимые названия и кликать на кнопку «Добавить». При этом изображения с табличками будут появляться в рабочей области.
- Чтобы установить связи между таблицами в Access следует захватить поле одного объекта, перенести и отпустить мышку над соответствующим полем в другом. После этого на экране появится окошко с настройками.
- Если задать точное расположение ячеек в Access с помощью мышки не удалось, их можно настроить в выпадающих списках. Включение всех «флажков» обеспечит целостность и сохранность данных, а также их каскадное изменение.
- Установленный тип отношений можно просмотреть внизу окошка. Всего их три: «1 ко многим», «к одному» и «многие ко многим». Если в окне отобразился не тот параметр, значит, типы полей были заданы неверно.
- После нажатия на кнопку «Создать» между изображениями появится линия с цифрой 1 и символом бесконечности. Это значит, что объекты Access связаны соотношением «один ко многим».

Как видите, ничего сложного в установлении связи между таблицами в Access нет. Надеемся, что наше руководство окажется полезным для вас!
Как в аксессе сделать связь один ко многим
В Access можно задать три вида связей между таблицами: Один-ко-многим, Многие-ко-многим и Один-к-одному.
Связь Один-ко-многим — наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В — несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое — общим с таблицей В.
При связи Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один-к-одному применяют для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Тип создаваемой связи зависит от полей, для которых определяется связь:
· связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;
· связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;
· связь Многие-ко-многим фактически представляет две связи типа один-ко-многим через третью таблицу, ключ которой состоит, по крайней мере, из двух полей, общих для двух других таблиц.
Создание связей между таблицами
· щелкните по кнопке на панели инструментов или выполните команду Сервис, Схема данных. На экране появится окно «Схема данных»;
· щелкните по кнопке на панели инструментов или выполните команду Связи, Добавить таблицу;
· в появившемся окне будет выделено название одной таблицы. Щелкните по кнопке <Добавить>;
· переведите выделение на имя следующей таблицы и щелкните по кнопке <Добавить>. Аналогично добавьте оставшиеся таблицы;
· закройте окно, щелкнув по кнопке <3акрыть>;
· создайте связь между таблицами. Для этого подведите курсор мыши к полю первой таблицы, щелкните левой кнопкой мыши и, не отпуская ее, перетащите курсор на поле в другую таблицу, а затем отпустите кнопку мыши. На экране откроется окно «Связи»;
· установите флажок в свойстве Обеспечение целостности данных, щелкнув по нему;
· установите флажок в свойстве Каскадное обновление связанных полей и Каскадное удаление связанных записей;
· щелкните по кнопке <Создать>. Связь будет создана;
· аналогично создайте связи между другими таблицами
· закройте окно схемы данных, ответив ДА на вопрос о сохранении макета.