![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
А также возможные режимы для каждого типа связи
Связь многие-ко-многим возможна только на уровне логической модели данных. На рис. 2.31 вверху показан пример связи многие-ко-многим. Врач может принимать много пациентов, пациент может лечиться у нескольких врачей. Такая связь обозначается сплошной линией с двумя точками на концах.
Рис. 2.31 Связь многие-ко-многим
Для внесения связи следует установить курсор на кнопке Связь многие-ко-многим должна именоваться двумя фразами - в обе стороны (в примере " принимает/лечится"). Это облегчает чтение диаграммы. Связь на рис. 2.31 следует читать Врач < принимает> Пациент " ^. Пациент < лечится> у Врач " а. При переходе к физическому уровню ER-win автоматически преобразует связь многие-ко-многим, добавляя новую таблицу и устанавливая две новые связи один-ко-многим от старых к новой таблице (рис. 2.32, сверху),. При этом имя новой таблице присваивается автоматически как " Имя1_Имя2 "
Рис. 2.32. Иллюстрация автоматического разрешения связи многие-ко-многим на уровне физической модели
Автоматического решения проблемы связи многие-ко-многим не всегда оказывается достаточно. В примере таблица Doctor_ Patient имеет смысл визита к врачу, поэтому ее следует переименовать согласно бизнес - логике в Visit. Один и тот же пациент может много раз посещать врача, поэтому для того, чтобы идентифицировать визит, необходимо в состав первичного ключа таблицы Visit добавить дополнительную колонку, например дату-время посещения (VisitDatetime, рис. 2.33).
Рис 2.33. Дополнение модели при разрешении связи многие-ко-многим на уровне физической модели Следует заметить, что после внесения дополнительной колонки на физическом уровне на логическом уровне представление модели не изменится, диаграмма будет выглядеть так, как на рис. 2.31.
|