Моделирование базы данных с помощью UML: отношения - PullRequest
1 голос
/ 11 марта 2012

Я учу UML для моделирования базы данных для проекта класса. По сути, база данных для социальной сети. Таблицы - это пользователь, друзья, профиль, статус, настенные посты и комментарии. У меня возникли проблемы с определением точных отношений.

На первый взгляд кажется, что все таблицы имеют композиционные отношения (разной кратности); пользователь "имеет" профиль (1-1), пользователь "имеет" друзей (1-0 .. *), wall_posts (1-0 .. *), а wall_post "имеет" комментарии (1-0. . *). Если пользователь удален, эффект будет каскадным и должен удалить все записи, имеющие этот идентификатор пользователя. В пользовательской таблице есть информация, такая как имя uid (которая не реплицируется в таблице wall_posts), поэтому необходимо удалить что-то вроде записи сообщения.

Есть ли изъян в моей логике?

1 Ответ

2 голосов
/ 11 марта 2012

Часть, в которой a user "has" friends(1-0..*) имеет недостатки.

Это должно быть нм между таблицей пользователя и самой собой (или 0..*-0..* в нотации UML), потому что все эти друзьяне исключительно для одного пользователя.У каждого (надеюсь) может быть много друзей.Может быть реализовано с помощью таблицы friendship, которая содержит два (различных) внешних ключа к пользовательской таблице и, возможно, дополнительные атрибуты, описывающие взаимосвязь.

...