YourLib.net
Твоя библиотека
Главная arrow Базы данных. Проектирование и создание (С.М. Диго) arrow 4.10.4. Преобразование связи «многие-ко-многим»
4.10.4. Преобразование связи «многие-ко-многим»

4.10.4. Преобразование связи «многие-ко-многим»

   Как известно, связи M:M между таблицами баз данных в реляционной модели не поддерживаются. Если при создании связи M:M в логической модели в меню Model/Model Properties была отмечена позиция Many-to-Many Relationships with Association Table, топри переходе к физической модели вместо связи M:M будет создана связующая таблица, с которой таблицы, соответствующие сущностям, связанным отношением M:M, будут связаны обычной для реляционных моделей связью 1:M.
   На рис. 4.83 изображен соответствующий фрагмент модели физического уровня, получившийся путем автоматического преобразования связи М:М (см. рис. 4.47) в связующую (ассоциативную) таблицу.

Рис. 4.83. Создание связующей таблицы при преобразовании связи М:М 

Рис. 4.83. Создание связующей таблицы при преобразовании связи М:М

   Полученную таблицу можно переименовать, назвав ее, например, «Владение предметом».
   Если при создании связи M:M в логической модели в меню Model/Model Properties позиция Many-to-Many Relationships with Association Table не была отмечена, то при переходе к физической модели связующая таблица создана не будет. Если все-таки надо, чтобы такая таблица была создана (а в подавляющем большинстве случаев это именно так), то можно воспользоваться возможностью трансформации модели. Для этого надо выделить связь и нажать на кнопку Many to Many Transform. И далее, следуя подсказкам системы, надо задать имя создаваемой связующей таблицы и имя трансформации.
   В процессе создании ER-модели может возникнуть ситуация, что, уточняя и расширяя модель, в связующую таблицу будут введены дополнительные колонки (т.е. для связи будут заданы характеризующие ее свойства). Если не предпринять дополнительных действий, то в логической модели эти изменения не будут видны. Чтобы они стали видны и в логической модели, надо в «эксплоере» выбрать позицию Transform/Delete/Resolve Transform (рис. 4.84).

 Рис. 4.84. Выбор позиции Resolve Transform/Reverse Transform

Рис. 4.84. Выбор позиции Resolve Transform/Reverse Transform

   Несмотря на то, что в ERWin есть возможность использовать Many to Many Transform для каждой связи М:М, лучше задать признак автотрансформации в свойствах модели (см. рис. 4.46), так как обычно связь М:М в физической модели передается связующей таблицей. Если же связь М:М не отображается в физической модели, то скорее всего ее надо удалить из логической модели.

 
< Пред.   След. >