xin*_*gyu 12 database database-design erd entity-relationship
我正在学习如何将实体关系图解释为SQL DDL语句,我对符号的差异感到困惑.考虑一个不相交的关系,如下图所示:

这会表示为:
我认为这些是写这种关系的其他方式:

我正在寻找一个明确的解释,说明每个图表最终会有哪些表格.
Bra*_*vic 23
有几种ER符号.我不熟悉你正在使用的那个,但很明显你试图表示一个子类型(又名继承,类别,子类,泛化层次......).这是OOP继承的关系表亲.
在进行子类型分析时,您通常会关注以下设计决策:
Vehicle存在而不是存在2WD或4WD?1Vehicle是既 2WD和4WD?2Bike或Plane(etc ...)添加到数据库模型中?信息工程表示法区分包容性和排他性子类型关系.另一方面,IDEF1X表示法没有(直接)识别这种差异,但它确实区分了完整和不完整的子类型(IE没有).
从下图ERwin的方法指南(第5章,子类型关系)示出的区别:

IE和IDEF1X都不能直接指定抽象与具体父级.
遗憾的是,实际数据库不直接支持继承,因此您需要将此图转换为实际表.这样做通常有3种方法:
2WD和4WD具有相同ID的车辆).可以轻松地强制执行包容性与独占子项以及抽象与具体父级(仅通过改变CHECK).正如您所看到的,情况并不理想 - 无论您选择何种方法,您都需要妥协.方法(3)应该是你的出发点,如果有令人信服的理由,只选择其中一种方案.
1我猜这是你的图表中线条的粗细.
2我猜这是你的图表中存在或不存在"不相交"的含义.