相同 table 上的多对多关系在 UML 中看起来像

How many to many relationship on same table looks like in UML

我在理解 UML 中同一 table 上的多对多关系时遇到问题。

我的数据库中的一个用户拥有 权限,表明他是谁(教师学生).

我的问题是我有一个可以有 0 个或更多学生的讲师和一个可以有 0 个或更多讲师的学生。

我的想法是这样的:

我不确定是否正确。有没有更好的解决办法?

感谢大家的帮助:)

你真的需要 2 个关系/多对多吗?

对我来说只有一个自我关系/一对多

User --
  ^   |
 *|   |
  ----/
  • 如果用户是教师,关系指定学生
  • 如果用户是学生,则关系指定教师

这取决于你想要达到什么。

如果您尝试使用 UML 构建数据库文档,那么您的模型将与您使用例如乌鸦脚符号。在这种情况下,您的图表是正确的。

要强调关系,您可以使用关联 class 将用户与用户链接起来。只有当你的关联 class 带来任何额外的价值(属性)时,它才带来价值,否则,你可以使用简单的关联。

如果您专注于显示实际的依赖关系而不是数据库中的依赖关系,您可以考虑让 User 作为两个 classes Teacher 和 Student 的父级,然后将您的关联描述为教师和学生之间而不是用户之间。