17

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

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

我一头雾水,现在是什么情况?!

4

2 回答 2

40

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

无论它是如何实现的,这种关系都存在。

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

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

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

这是基本关系

基本的

这是关系的实现

实施

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

于 2009-08-20T13:29:45.600 回答
13

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

Enrollment 连接实体是UML 2 类图中的一个很好的例子。

于 2009-08-20T13:06:28.100 回答