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

Pet*_*ter 12 uml many-to-many analysis

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

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

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

S.L*_*ott 30

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

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

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

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

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

这是必不可少的关系

基本的http://i28.tinypic.com/x3tnhk.jpg

这是关系的实现

实施http://i32.tinypic.com/mmws2h.jpg

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


cle*_*tus 12

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

UML 2类图中,Enrollment join实体就是一个很好的例子.