相同 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 的父级,然后将您的关联描述为教师和学生之间而不是用户之间。
我在理解 UML 中同一 table 上的多对多关系时遇到问题。
我的数据库中的一个用户拥有 权限,表明他是谁(教师或学生).
我的问题是我有一个可以有 0 个或更多学生的讲师和一个可以有 0 个或更多讲师的学生。
我的想法是这样的:
我不确定是否正确。有没有更好的解决办法?
感谢大家的帮助:)
你真的需要 2 个关系/多对多吗?
对我来说只有一个自我关系/一对多
User --
^ |
*| |
----/
- 如果用户是教师,关系指定学生
- 如果用户是学生,则关系指定教师
这取决于你想要达到什么。
如果您尝试使用 UML 构建数据库文档,那么您的模型将与您使用例如乌鸦脚符号。在这种情况下,您的图表是正确的。
要强调关系,您可以使用关联 class 将用户与用户链接起来。只有当你的关联 class 带来任何额外的价值(属性)时,它才带来价值,否则,你可以使用简单的关联。
如果您专注于显示实际的依赖关系而不是数据库中的依赖关系,您可以考虑让 User 作为两个 classes Teacher 和 Student 的父级,然后将您的关联描述为教师和学生之间而不是用户之间。