【发布时间】:2012-09-08 20:31:30
【问题描述】:
在有关实体关系图的每个教程中,我都读到不允许为关系指定固定的基数。只有对 ERD 的非正式评论才能澄清飞行员的数量是exactly 2。
因此,例如,每个航班恰好有 2 名飞行员在场的航班和飞行员之间的关系必须表示为:
<flight> 0..N <------> 1..N <pilot>
而不是
<flight> 0..N <------> 2 <pilot>
我的符号是0..N = 可选,很多; 1..N = 强制,很多,1 = 强制,一个。
这个限制是通用的吗?背后的原因是什么?
编辑:澄清了我的符号。
编辑:我可以看到两个关系如何强制执行相同的约束:
0..N <------> 1
<flight> <pilot>
0..N <------> 1
但是随后查询飞行员是否在给定航班上的查询变得非常难看,因为您必须检查两个属性中的每一个。如果属性的数量增加(例如,增加到 15 名空乘人员),查询将变得完全无法管理,并且架构几乎无法管理。
【问题讨论】:
-
您的第二个设计没有强制执行相同的约束。特别是,它缺少两个关系中的飞行员不同的约束。
标签: database-design entity-relationship database-schema erd