SQL使用三元关系创建弱实体集

时间:2017-08-03 14:15:46

标签: sql

考虑以下两个实体集

Employee(ID, name, address)
Dependent(pname, age)

此处,Employee是一个强大的实体集,ID是其主键。 Dependent是弱实体集,pname是其部分密钥。实体集通过弱关系政策(金额)相关联。

我应该如何处理关系政策?我是否需要一个单独的表来存储关系和金额属性,或者我可以将其包含在Dependent

1 个答案:

答案 0 :(得分:2)

你提到这是一种三元关系。当三个实体之间存在多对多关系时,就会发生三元关系。在这种情况下,


Many Employee --- Many Dependent
Many Employee --- Many Policy     
Many Policy   --- Many Dependent

为了在关系数据库中支持这一点,您需要将其分解为二进制关系。我不确定你是否真的有三元关系,因为你在质疑你是否需要第三张牌桌。如果这种关系是三元关系,你就要处理六张牌桌。三个主要实体和三个交叉表来打破多对多的关系。

如果您的关系如此:


One Employee --- Many Dependent
One Employee --- One Policy
One Policy   --- Many Dependent

然后是的,根据您的业务需求,将策略金额放在从属表中而不是创建第三个表是可以接受的。