我已经阅读了几个关于UML模型应该包含什么以及什么不包含的教程。作为开发人员,我总是从关系数据模型的角度思考,在这种模型中,表之间永远不会有多对多的关系。现在有了一个UML类模型,我读过如果它们没有提供附加值,你可以跳过链接表。
然而,我还阅读了一个教程,其中给出了使用表格内的数据给出的示例,强烈建议在为类模型建模时将每个类描绘成一个简单的表。
我很困惑,现在是什么?!
答案 0 :(得分:30)
“关系链接表”是多对多关系的实现技术。
无论如何实施,这种关系都存在。
在对象模型中,您有很多选择来实现多对多,这可能(或可能不)涉及额外的持久表。它可以通过许多不同的方式完成。
UML的目的是能够描述模型真正的基本特征。
您也可以 描述实施。它们是具有不同目的的单独图表。您可以使用链接表轻松显示关系实现。您还可以在没有链接表的情况下显示基本模型。
这是必不可少的关系
这是关系的实现
两者都是有效的UML。真正的问题是“你需要向别人展示什么?”基本事实还是一个特定的实施?
答案 1 :(得分:12)
将其建模为M:N关系。与关系模型相同,代码中会有某种关联类(或链接类)。除非在连接属性之上具有属性,否则无需将其放在图上(非常类似于您通常会从ERD中省略连接实体,除非它具有在相关实体中不是外键的属性)。链接类通常被绘制为通过虚线连接到关系的类。
注册联接实体就是UML 2 Class Diagrams中的一个很好的例子。