Концептуальная модель данных тренинговой компании

27.11.2006

Логическую модель данных лучше сначала рисовать на бумаге. Получится в разы быстрее, чем на компьютере. Если начнете строить модель в каком-нибудь средстве проектирования, потратите лишнее время на модификацию структуры, а изменять ее на первых итерациях вы будете постоянно. Гораздо быстрее зачеркнуть и нарисовать заново, чем бродить по формам с настройками сущностей, атрибутов и связей и бороться с не всегда удобным интерфейсом.

Я же не буду мучить вас своими каракулями, а сразу покажу схему, изготовленную в Sybase PowerDesigner.

Концептуальная модель данных тренинговой компании в PowerDesigner

Если внимательно рассмотреть эту картинку, то даже неподготовленному зрителю многое станет понятно. Такая логическая схема в этом средстве называется Conceptual Data Model (CDM). Потом из нее можно получить графическое изображение физической структуры базы данных. Дальше можно, например, экспортировать эту структуру в какую-нибудь СУБД.

На моей схеме изображены три сущности и их атрибуты, а также отношения, на которых остановимся поподробнее. Обратите внимание на отношение между «event» и «program»: со стороны программ связь представлена одной линией, а со стороны событий она ветвится. Это означает, что по одной и той же программе могут проводиться несколько тренингов, но тренинг всегда проводится по одной программе.

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

Обратите внимания и на подписи связей.

При щелчке правой кнопкой мыши по любой сущности или отношению появляется контекстное меню. В нем около десятка пунктов, многие из которых вызывают формы с 5--8 вкладками, так что, как видите, недостатка в настройках не ощущается. На этих формах настраиваются параметры объектов, а схема изменяется с их учетом.

Итак, как же нам помогла эта схема при проектировании помимо очевидного ее развития в физическую модель? Изначально на сайте планировались несвязанные страницы: «события», «тренеры», «программы» и т. д. После изучения полученной модели появилась, например, идея на странице конкретного события выводить не только его непосредственное описание, но и списки участников, организаторов, тренеров, ссылку на описание программы и автора программы. Теперь пользователь получает больше релевантного содержимого. Разве не здорово?

Вообще, PowerDesigner — мощный-премощный инструмент, из всех возможностей которого я знаю 10%. На сайте есть trial-версия и горы документации, так что рекомендую ознакомиться.

Комментарии

Сергей, 28.08.2007 18:31

Забавно. Именно в этом направлении я двигался, когда создавал свой сайт о психологах и тренингах :)

бублик, 01.12.2008 22:47

ага..писать на бумаге.а я так всегда делаю:) спасибо, что подтвердил,чтоя правильно поступаю)

а сейчас у меня курсач по бд..пожелайте мне удачи. времени не так много осталось

Дмитрий Сергеев, 11.12.2008 15:38

Удачи )