关于识别与非识别关系存在许多问题,但是,它们都关注于1对多关系。以下是我目前的理解,如果我错了,请纠正我。
如果父母的密钥是孩子PK的一部分,那么它就是一种识别关系。这意味着子表中的记录不能在父表中没有相应记录的情况下存在(没有作者就不能存在一本书),父表的PK需要唯一地标识子表中的记录(显然,因为它是孩子的一部分PK)。
1对1识别关系是相似的。一个示例是传输表,automatic_transmissions表和manual_transmissions表,其中automatic_transmissions表和manual_transmissions都与传输具有1对1的标识关系。每个automatic_transmissions表和manual_transmissions表必须具有关联的传输,并且传输PK可以唯一地标识automatic_transmissions表或manual_transmissions表中的任何相关记录。使用此方法是因为automatic_transmissions表和manual_transmissions表共享许多属性,但每个属性也具有特定于自身的属性。
直到现在我还好吗?
现在采取一对一的非识别关系。什么,没有PK的桌子?为什么需要这样一张桌子?有什么例子?它是如何使用的?
答案 0 :(得分:0)
假设您有一张汽车表和一张传输表。每辆车都有一个变速箱。每个变速器在给定时间仅在一辆车中。但是,相同的变速器并不总是停留在同一辆车上。有时汽车的传动装置会断裂并且必须更换。有时传动装置会从旧的,破损的汽车中取出并放入不同的汽车中。
汽车和变速箱之间存在一对一的关系。但是,这是一种非识别关系,因为孩子的(传播)身份不依赖于父母(汽车)。
这些都不意味着“没有PK的桌子”。汽车和变速箱表都有主键。这只是汽车的PK不是传输PK的一部分。