【问题标题】:How many to many relationship on same table looks like in UML在 UML 中,同一张表上的多对多关系看起来像
【发布时间】:2019-08-17 00:39:21
【问题描述】:
我在理解 UML 中同一张表上的多对多关系时遇到了问题。
我数据库中的用户拥有权限,这表明他是谁(教师或学生)。
我的问题是我有一个可以有 0 个或更多学生的讲师和一个可以有 0 个或更多讲师的学生。
我的想法是这样的:
我不确定它是否正确。有没有更好的解决办法?
感谢大家的帮助:)
【问题讨论】:
标签:
database
database-design
many-to-many
uml
【解决方案1】:
这取决于你想要实现什么。
如果您尝试使用 UML 构建数据库文档,那么您的模型将与您使用的模型没有什么不同,例如乌鸦脚符号。在这种情况下,您的图表是正确的。
为了强调这种关系,您可以使用关联类将用户与用户联系起来。只有当您的关联类带来任何额外的价值(属性)时,它才会带来价值,否则,您可以使用简单的关联。
如果您专注于显示实际的依赖关系而不是数据库中的依赖关系,您可以考虑让 User 作为教师和学生两个班级的父级,然后将您的关联描述为教师和学生之间的关联,而不是两者之间的关联用户。
【解决方案2】:
你真的需要 2 个关系/多对多吗?
对我来说只有一种自我关系/一对多
User --
^ |
*| |
----/
- 如果用户是教师,则关系指定学生
- 如果用户是学生,则关系指定教师