我正在学习UML为类项目建模数据库。从本质上讲,数据库是用于社交网络的。这些表包括用户、好友、个人资料、状态、wall_posts和评论。我很难确定确切的关系。
乍一看,似乎所有的表都有组成关系(多样性不同);一个用户"有"配置文件(1-1),一个用户有"朋友"(1-0..*),wall_posts(1-0.*),还有一个wall_post"有"评论(1-0..*。
我的逻辑有缺陷吗?
a user "has" friends(1-0..*)
有缺陷的部分。
这应该是用户表和它自己之间的n-m(或者UML表示法中的0..*-0..*
),因为所有这些朋友都不是一个用户独有的。每个人(希望)都能有很多朋友。可以通过friendship
表来实现,该表包含用户表的两个(不同的)外键以及可能描述关系的其他属性。