2012-03-11 8 views
1

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

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

Есть ли недостаток в моей логике?

ответ

2

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

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

+0

То, как это реализовано, таблица друзей - это, по существу, таблица дружбы (я должен переключить имя). Он содержит два внешних ключа (f_uid, with_uid) и атрибут from_date. Каков тип отношения к пользователю в этом случае? Это все еще композиция? Дружба существует только между двумя людьми, но у пользователя может быть много из них. (2-n?) – Ch0b0

+0

@ Ch0b0: отношения между 'user' и' friendship' будут '1-0 .. *' и там будет быть * двумя * из этих соединений. –

 Смежные вопросы

  • Нет связанных вопросов^_^