我正在实现一个小型数据库(大学项目),我面临着以下问题。
我创建了一个类图,其中我有一个类
列车{Id,名称,详情}
和一个类
RollingStock
这在火车头和FreightWagon中得到了推广。
一列火车在特定的时间由多个RollingStock组成(在不同的日期滚动
stock将组成不同的列车)。
我将列车-车辆关系表示为一个菱形填充(UML),但我仍然
在两个表之间具有多对多关系。
因此,我想我必须创建一个附加表来解决多对多关系
train_RollingStock。
但是我如何表示这个构图呢?
我还能用填满的钻石吗?如果是,站在哪一边?
谢谢
发布于 2010-04-12 06:41:49
在选择填充钻石和透明钻石时,我有一个简单的经验法则。
如果子对象的存在依赖于父对象,那么它就是一个填充菱形。一只手有5个手指。如果手消失了,手指也消失了。
如果子对象的存在不是依赖的,则使用透明菱形。如果火车头离开了,车辆仍然存在,所以这是一个明确的钻石关系。
但在这种情况下,您可能是在模拟哪个车辆连接到哪个列车以及何时连接的历史。
因此,您可能有一个加入的类,引用火车、车辆,并具有开始和结束日期时间。然后你必须决定关系。你可以:
或者你可以这样做:
填充钻石铁道车辆有多个encapsulation) (填充钻石有一个RollingStock (clear
或者你可以这样做:
最好的设计取决于你如何使用它,可能还有一系列你甚至无法预测的其他因素。你只需要选择一个,然后顺其自然。
https://stackoverflow.com/questions/2618933
复制相似问题