我在转换下面图片中的弱实体D时遇到问题
我应该这样做D(A_pri_key, B_pri_key)
或者我应该将D1(A_pri_key) and D2(B_pri_key)
分开?
我更喜欢第二种选择,因为第一种选择在转换C(A_pri_key, B_pri_key)
答案 0 :(得分:5)
我认为这应该是首选。
当我们为弱实体构造表时,它有每个属性的列和一个额外的列,用于放入强实体集的主键(弱实体所依赖的实体集)。
方法1
在这种情况下,D依赖于2个强实体。因此D =外键的主键(指向A的主键)+外键(指向B的主键)。这将为D的每个实例定义唯一键。
方法2
创建单独的表D1和D2将导致冗余。
在这种情况下,
D1的主键=判别器+外键(指向A)
D2的主键=判别器+外键(指向B)
这里针对D的具体实例,我们最终会得到2个主键,一个来自D1,另一个来自D2。