Как в аксессе сделать связь один ко многим

от admin

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 связать таблицы и пойдет речь в этой статье. Связь происходит по общему полю, для которого следует задать определенный тип данных. Изменения можно вносить как в исходную, так и в связанную таблицу – они в любом случае будут отображаться в обеих БД.

Читать:
Что значит ввести номер по маске

Пошаговая инструкция

  1. Откройте БД в программе (помните, что связать можно минимум 2 таблицы в Access).
  2. Заполните поля информацией, учитывая, что для осуществления операции, поля должны иметь схожий тип данных. Если созданная связь имеет формат «один ко многим», то поля в первой таблице могут иметь тип «Счетчика», а соответствующая ячейка во второй – должна быть числовой. В качестве ключевого следует задать именно счетчик.
  3. Откройте меню «Сервис/Схема данных» после чего на экране появится область со связанными элементами. Если же она пуста, то окно добавления таблиц откроется в Access автоматически.
  4. Для того чтобы включить связываемые таблицы Access в открытую БД, следует выделять необходимые названия и кликать на кнопку «Добавить». При этом изображения с табличками будут появляться в рабочей области.
  5. Чтобы установить связи между таблицами в Access следует захватить поле одного объекта, перенести и отпустить мышку над соответствующим полем в другом. После этого на экране появится окошко с настройками.
  6. Если задать точное расположение ячеек в Access с помощью мышки не удалось, их можно настроить в выпадающих списках. Включение всех «флажков» обеспечит целостность и сохранность данных, а также их каскадное изменение.
  7. Установленный тип отношений можно просмотреть внизу окошка. Всего их три: «1 ко многим», «к одному» и «многие ко многим». Если в окне отобразился не тот параметр, значит, типы полей были заданы неверно.
  8. После нажатия на кнопку «Создать» между изображениями появится линия с цифрой 1 и символом бесконечности. Это значит, что объекты Access связаны соотношением «один ко многим».

Как видите, ничего сложного в установлении связи между таблицами в Access нет. Надеемся, что наше руководство окажется полезным для вас!

Как в аксессе сделать связь один ко многим

В Access можно задать три вида связей между таблицами: Один-ко-многим, Многие-ко-многим и Один-к-одному.

Связь Один-ко-многим — наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.

При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В — несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое — общим с таблицей В.

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

Тип создаваемой связи зависит от полей, для которых определяется связь:

· связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;

· связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;

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

Создание связей между таблицами

· щелкните по кнопке на панели инструментов или выполните команду Сервис, Схема данных. На экране появится окно «Схема данных»;

· щелкните по кнопке на панели инструментов или выполните команду Связи, Добавить таблицу;

· в появившемся окне будет выделено название одной таблицы. Щелкните по кнопке <Добавить>;

· переведите выделение на имя следующей таблицы и щелкните по кнопке <Добавить>. Аналогично добавьте оставшиеся таблицы;

· закройте окно, щелкнув по кнопке <3акрыть>;

· создайте связь между таблицами. Для этого подведите курсор мыши к полю первой таблицы, щелкните левой кнопкой мыши и, не отпуская ее, перетащите курсор на поле в другую таблицу, а затем отпустите кнопку мыши. На экране откроется окно «Связи»;

· установите флажок в свойстве Обеспечение целостности данных, щелкнув по нему;

· установите флажок в свойстве Каскадное обновление связанных полей и Каскадное удаление связанных записей;

· щелкните по кнопке <Создать>. Связь будет создана;

· аналогично создайте связи между другими таблицами

· закройте окно схемы данных, ответив ДА на вопрос о сохранении макета.

Related Posts