首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体关系图-组合

问实体关系图-组合
EN

Stack Overflow用户
提问于 2010-04-12 06:23:23
回答 1查看 2.3K关注 0票数 1

我正在实现一个小型数据库(大学项目),我面临着以下问题。

我创建了一个类图,其中我有一个类

列车{Id,名称,详情}

和一个类

RollingStock

这在火车头和FreightWagon中得到了推广。

一列火车在特定的时间由多个RollingStock组成(在不同的日期滚动

stock将组成不同的列车)。

我将列车-车辆关系表示为一个菱形填充(UML),但我仍然

在两个表之间具有多对多关系。

因此,我想我必须创建一个附加表来解决多对多关系

train_RollingStock。

但是我如何表示这个构图呢?

我还能用填满的钻石吗?如果是,站在哪一边?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-12 06:41:49

在选择填充钻石和透明钻石时,我有一个简单的经验法则。

如果子对象的存在依赖于父对象,那么它就是一个填充菱形。一只手有5个手指。如果手消失了,手指也消失了。

如果子对象的存在不是依赖的,则使用透明菱形。如果火车头离开了,车辆仍然存在,所以这是一个明确的钻石关系。

但在这种情况下,您可能是在模拟哪个车辆连接到哪个列车以及何时连接的历史。

因此,您可能有一个加入的类,引用火车、车辆,并具有开始和结束日期时间。然后你必须决定关系。你可以:

  • 列车有多个RollingStockRelatinships (填充钻石有一个铁道车辆(透明钻石encapsulation)

或者你可以这样做:

填充钻石铁道车辆有多个encapsulation) (填充钻石有一个RollingStock (clear

  • encapsulation)

或者你可以这样做:

  • RollingStockRelationship指向这两种类型之一(清除菱形encapsulation)

最好的设计取决于你如何使用它,可能还有一系列你甚至无法预测的其他因素。你只需要选择一个,然后顺其自然。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2618933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档