Database ERD图中的继承关系

Database ERD图中的继承关系,database,mysql-workbench,erd,Database,Mysql Workbench,Erd,我对ERD图中的继承表示法有疑问。 下面是一个例子: 我有飞机,我也有两种类型的飞机 单人飞机 双货机 我不知道应该使用哪种关系(1对1或1对多)。我的DB老师告诉我应该使用1对1的关系,但我在互联网上发现许多例子使用(1对多)关系而不是(1对1)。 检查以下图像: 一对一关系 一对多关系 哪一个是正确的???ERD中的继承关系应根据具体情况表示为一对一关系或一对一或零对一关系 1) 0..1-1:如果可能存在一个平面实体,因为平面可以存在,而没有像cargo或personal这样的子实体,

我对ERD图中的继承表示法有疑问。 下面是一个例子: 我有飞机,我也有两种类型的飞机 单人飞机 双货机 我不知道应该使用哪种关系(1对1或1对多)。我的DB老师告诉我应该使用1对1的关系,但我在互联网上发现许多例子使用(1对多)关系而不是(1对1)。 检查以下图像:

一对一关系

一对多关系


哪一个是正确的???

ERD中的继承关系应根据具体情况表示为一对一关系或一对一或零对一关系

1) 0..1-1:如果可能存在一个平面实体,因为平面可以存在,而没有像cargo或personal这样的子实体,但是cargo和personal不能存在,而没有父平面实体

2) 1-1:如果每个实体不能自身存在。平面中的PK是cargo和personal子表中的外键和主键

我不认为在任何情况下它是一对多的,我将给你一个例子:平面pk=1的db记录。外键为1的个人平面的两条db记录引用父平面表中的一条记录。这意味着有两个子实体具有相同的键,这是错误的。子表中必须只有一条被引用的记录,因此0..1-1或1-1关系。

ER建模(或者更准确地说,EER建模)可以在图中表示继承。它被称为“泛化/专业化”。你可以在网上找到很多好文章

图表技术不会告诉您如何设计反映这种继承情况的关系表。这实际上更多的是数据库设计问题,而不是ER图表。如果您查阅Martin Fowler对“类表继承”或“单表继承”的处理,您将获得一些设计模式的良好演示


SO中有带有这些名称的标签,这些标签下的信息以及已标记的问题都很有用。

谢谢!我明白了。但是如果你检查这个,他们使用一对多关系!!我觉得有点奇怪。谢谢你的评论,但我已经知道了。我的问题只是想知道使用哪种关系。感谢Martin Fowler对“类表继承”处理的建议!非常方便和有用!