UML类模型如何建模多对多关系

时间:2009-08-20 13:03:41

标签: uml many-to-many analysis

我已经阅读了几个关于UML模型应该包含什么以及什么不包含的教程。作为开发人员,我总是从关系数据模型的角度思考,在这种模型中,表之间永远不会有多对多的关系。现在有了一个UML类模型,我读过如果它们没有提供附加值,你可以跳过链接表。

然而,我还阅读了一个教程,其中给出了使用表格内的数据给出的示例,强烈建议在为类模型建模时将每个类描绘成一个简单的表。

我很困惑,现在是什么?!

2 个答案:

答案 0 :(得分:30)

“关系链接表”是多对多关系的实现技术。

无论如何实施,这种关系都存在。

在对象模型中,您有很多选择来实现多对多,这可能(或可能不)涉及额外的持久表。它可以通过许多不同的方式完成。

UML的目的是能够描述模型真正的基本特征。

您也可以 描述实施。它们是具有不同目的的单独图表。您可以使用链接表轻松显示关系实现。您还可以在没有链接表的情况下显示基本模型。

这是必不可少的关系

Essential

这是关系的实现

Implemntation

两者都是有效的UML。真正的问题是“你需要向别人展示什么?”基本事实还是一个特定的实施?

答案 1 :(得分:12)

将其建模为M:N关系。与关系模型相同,代码中会有某种关联类(或链接类)。除非在连接属性之上具有属性,否则无需将其放在图上(非常类似于您通常会从ERD中省略连接实体,除非它具有在相关实体中不是外键的属性)。链接类通常被绘制为通过虚线连接到关系的类。

注册联接实体就是UML 2 Class Diagrams中的一个很好的例子。