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

24

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

然而,我也阅读了一篇教程,其中给出了使用表内数据的示例,并强烈建议将每个类视为简单表格,同时建模您的类模型。

我感到困惑,现在到底应该怎么做呢?


你所考虑的类模型是什么上下文; 商业模型,分析模型还是设计模型? - Doug Knesek
2个回答

47

"关系链接表"是用于实现多对多关系的一种技术。

无论如何它都存在关系。

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

UML的重点是能够描述模型的基本特征。

你也可以描述实现方式。这是具有不同目的的不同图表。您可以轻松地展示带有连接表的关系实现。还可以展示不带连接表的基本模型。

以下是关键关系:

Essential

以下是关系实现:

Implemntation

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


为什么你使用一个圆圈和虚线来连接"Enrollment"和"relationship"之间的关系? - undefined

13

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

Enrolment加入实体是UML 2类图中的一个很好的例子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接