Логическую модель данных лучше сначала рисовать на бумаге. Получится в разы быстрее, чем на компьютере. Если начнете строить модель в каком-нибудь средстве проектирования, потратите лишнее время на модификацию структуры, а изменять ее на первых итерациях вы будете постоянно. Гораздо быстрее зачеркнуть и нарисовать заново, чем бродить по формам с настройками сущностей, атрибутов и связей и бороться с не всегда удобным интерфейсом.
Я же не буду мучить вас своими каракулями, а сразу покажу схему, изготовленную в Sybase 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
Удачи )