我正在学习 UML 来为类(class)项目建立数据库模型。本质上,该数据库用于社交网络。这些表是用户、 friend 、个人资料、状态、wall_posts 和评论。我在确定确切的关系时遇到了一些麻烦。
乍一看似乎所有的表都有组成关系(不同的多重性);用户“有”个人资料(1-1),用户“有” friend (1-0..*),wall_posts(1-0..*)和 wall_post“有”评论(1-0。 .*)。如果用户被删除,效果级联并且应该删除任何具有该用户 ID 的记录。 user 表包含诸如 uid 名称之类的信息(未在 wall_posts 表中复制),因此必须删除诸如消息记录之类的信息。
我的逻辑有问题吗?
最佳答案
用户“有” friend (1-0..*)
的部分有缺陷。
这应该是用户表和它自身之间的一个 n-m(或者 UML 表示法中的 0..*-0..*
),因为所有那些 friend 都不是专供一个用户使用。每个人(希望)都可以有很多 friend 。可以通过一个 friendship
表来实现,该表包含用户表的两个(不同的)外键以及描述关系的可能附加属性。
关于database - 使用 UML : Relationships 对数据库建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651727/