Uml 实体关系图-组合

Uml 实体关系图-组合,uml,Uml,我正在实施一个小型数据库(大学项目),我面临以下问题 我创建了一个类图,其中有一个类 列车{Id、名称、详细信息} 还有一节课 滚动轴承 这在机车和货车上得到了推广 列车在某一时间(不同的滚动日)由多个滚动轴承组成 股票将组成另一列股票) 我将火车与机车车辆的关系表示为一个菱形填充(UML),但我仍然 两个表之间有多对多关系 所以我想我必须创建一个额外的表来解决多对多关系 火车滚动轴承 但是我如何表现这篇文章呢 我还能用填好的钻石吗?如果是,在哪一边 谢谢在选择填充钻石和透明钻石时,我有一个简单

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

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

列车{Id、名称、详细信息}

还有一节课

滚动轴承

这在机车和货车上得到了推广

列车在某一时间(不同的滚动日)由多个滚动轴承组成

股票将组成另一列股票)

我将火车与机车车辆的关系表示为一个菱形填充(UML),但我仍然

两个表之间有多对多关系

所以我想我必须创建一个额外的表来解决多对多关系

火车滚动轴承

但是我如何表现这篇文章呢

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


谢谢

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

如果子对象的存在依赖于父对象,则它是一个填充的菱形。 一只手有五个手指。如果手不见了,手指也不见了

如果子对象的存在不是依赖的,则使用清晰的菱形。 如果火车头离开,滚动轴承仍然存在,因此这是一个明确的钻石关系

但在本例中,您可能会对连接到哪列列车的机车车辆以及何时连接的历史进行建模

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

  • 列车有多个滚动轴承(填充钻石封装)
  • RollingStockRelationship有一辆机车车辆(透明菱形封装)
或者你可以:

  • 机车车辆具有多个滚轴轴承(填充钻石封装)
  • RollingStockRelationship有一个RollingStock(透明菱形封装)
或者你可以:

  • RollingStockRelationship指向两种类型之一(透明菱形封装)
最好的设计取决于你将如何使用它,可能还有一系列你甚至无法预测的其他因素。你只要选一个就行了