КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Подсказка. Имя связующей таблицы часто состоит из имен двух таблиц, которые она связывает, например Authors Books.Имя связующей таблицы часто состоит из имен двух таблиц, которые она связывает, например Authors Books.
Суть связующей таблицы заключается в том, что она формирует два отношения "один-ко-многим", определенные в программе Access. Другими словами, связующая таблица — это таблица-потомок, у которой два родителя. У таблицы Authorsотношение "один-ко-многим" с таблицей Authors_Books,в котором таблица Authorsвыступает как родитель. У таблицы Booksтакже отношение "один-ко-многим" с таблицей Authors_Books,в котором таблица Books— родитель. Вы можете определить эти два отношения на вкладке Схема данных,убедившись в том, что заданы правила целостности данных (рис. 5.16).
Рис. 5.16.На самом деле отношение "многие-ко-многим" между таблицами Authorsи Books— это два отношения "один-ко-многим", включающие таблицу Authors_Books.После определения этих отношений вы не сможете связать автора или книгу, которые не существуют, и удалить автора или книгу, у которых есть запись в таблице Authors_Books Хотя на первый взгляд связующие таблицы производят странное впечатление, большинство фанатов БД быстро привыкают к ним. Как и в случае связей "один-ко-многим", которыми вы пользовались ранее, можно создавать подстановки (см. разд. "Поиск в связанных таблицах" ранее в этой главе) для полей AuthorIDи BookIDтаблицы Authors_Books.Но вам придется всегда вставлять вручную запись в таблицу Authors_Books для того, чтобы связать автора с книгой.
Многозначные поля До появления программы Access 2007 связующие таблицы были единственным средством создания связей "многие-ко-многим". Но для поддержки средств интеграции (см. главу 21) сервисов SharePoint в Access 2007 включена новая функциональная возможность — многозначные поля. Как следует из названия, многозначное поле может хранить более одного значения. Эта возможность очень удачно решает проблему связей "многие-ко-многим". Идея состоит в настройке связующего поля в таблице-потомке как многозначного поля. Вернемся к примеру с авторами и книгами. При отсутствии связующей таблицы вам нужно вставить столбец AuthorIDв таблицу с записями о книгах для обозначения каждого автора, написавшего данную книгу (табл. 5.9). Таблица 5.9. Данные таблицы Books, в которую добавлен столбец AuthorID, содержащий дублирующие значения
Но обычное поле хранит единственное значение. Таким образом, в этой таблице можно указать только одного из двух авторов книги № 403. Если же разрешить хранение нескольких значений в поле AuthorID,можно ввести список авторов, подобный приведенному в табл. 5.10.
Таблица 5.10. Данные таблицы Books, в которую добавлен столбец AuthorlD, хранящий несколько значений
За кадром многозначное поле в действительности использует связующую таблицу. Но программа Access скрывает эту подробность от вас, что существенно облегчает объединение связанных записей. Для создания поля с несколькими значениями следует использовать подстановку. Как вы уже знаете (см. рис. 5.14), эта функциональная возможность выбирается на последней странице мастера Создание подстановки. С другой стороны, если у вас уже есть подстановка в поле, необходимо внести небольшое изменение. Откройте таблицу в Конструкторе, выберите поле с подстановкой (например, ManufacturerID)и затем в области Свойства полящелкните кнопкой мыши вкладку Подстановка(Lookup). Найдите свойство Разрешение нескольких значений(Allow Multiple Values) и измените его значение с Нет на Да.
|