【问题标题】:UML class model how to model many to many relationshipUML类模型如何建模多对多关系
【发布时间】:2010-11-21 07:42:14
【问题描述】:

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

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

我一头雾水,现在怎么了?!

【问题讨论】:

  • 你正在考虑的类模型是什么上下文;业务模型、分析模型还是设计模型?

标签: uml many-to-many analysis


【解决方案1】:

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

无论如何实现,关系都存在。

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

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

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

这是基本关系

这是关系的实现

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

【讨论】:

    【解决方案2】:

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

    UML 2 Class Diagrams 中的 Enrollment join 实体就是一个很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 2017-08-25
      • 2017-06-15
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多