2012-03-11 140 views
1

我正在学习UML以为类项目建模数据库。基本上数据库是用于社交网络的。这些表格是用户,朋友,个人资料,状态,wall_posts和评论。我在确定确切的关系方面遇到了一些麻烦。乍一看,似乎所有的表格都具有不同多样性的组成关系;用户“拥有”个人资料(1-1),用户拥有“朋友”(1-0 .. *),wall_posts(1-0 .. *)和wall_post“拥有”注释(1-0。 。*)。如果用户被删除,效果将级联并应删除具有该用户标识的任何记录。用户表具有类似于uid名称的信息(不会在wall_posts表中复制),因此必须删除类似消息记录的信息。使用UML建模数据库:关系

我的逻辑中是否有缺陷?

回答

2

a user "has" friends(1-0..*)有缺陷的部分。

这应该是一个n-m之间的用户表和自己(或0..*-0..*在UML符号),因为所有这些朋友不是唯一的一个用户。每个人(希望)都可以有很多朋友。可以通过friendship表来实现,该表持有用户表的两个(不同的)外键以及可能包含描述关系的其他属性。

+0

它实现的朋友表的方式本质上是友谊表(我应该切换名称)。它包含两个外键(f_uid,with_uid)和一个since_date属性。这种情况下用户的关系类型是什么?它仍然是组成? (2-n?) – Ch0b0 2012-03-11 02:33:24

+0

@ Ch0b0:'user'和'friendship'之间的关系是'1-0 .. *',并且会有一个友谊是*两个这些连接。 – 2012-03-11 02:40:53