这两者有什么区别?我在扩展 ERD 中看到了它们,但我对它们之间的区别感到困惑。我把两者都读为“车辆要么是汽车,要么是卡车”。 U 型(类别)是显示完全不相交的另一种方式吗?或者使用一种方式相对于另一种方式有什么优势吗?
我在网上找到的唯一的东西是:如果超类有许多共同属性,请选择层次结构表示
有多种不同的 EERD 格式。您所描述的,而不是使用简单的 IsA 专业化肯定不是最常用的:
Vehicle
将超类 Truck
和 Car
分组。换句话说,车辆的每个实例都是卡车的实例或汽车的实例或两者的实例。该逻辑基于集合论,因为实体对应于集合。Truck
或 Car
,但实例必须是其中之一(同一 D 下的子类之间没有重叠)。事实上,当将更传统的 IsA 与多个类一起使用时,会导致歧义,即子类的元素是否可以同时存在,或者它们是否相互排斥。您的示例将相同的方法应用于两种不同的情况。由于差异非常微妙,因此无助于理解。在第一种情况下,Vehicle 只是 Truck of Car 的同义词,它们的定义与 Vehicle 无关。在第二种情况下,卡车和汽车被定义为车辆的专业化。车辆可以拥有一个由所有专业化继承的通用部件。