0

关于识别与非识别关系存在许多问题,但是,它们都集中在一对多关系上。以下是我目前的理解,如有错误请指正。

如果 parent 的 key 是 child PK 的一部分,则它是一个标识关系。这意味着子表中的一条记录不能没有父表中的对应记录而存在(一本书没有作者就不能存在),并且需要父表的PK来唯一标识子表中的一条记录(显然,因为它是部分子PK)。

一对一的识别关系是相似的。一个示例是传输表、自动传输表和手动传输表,其中自动传输表和手动传输表都与传输具有一对一的识别关系。每一个automatic_transmissions 表和manual_transmissions 表都必须有一个关联的传输,传输PK 可以唯一标识automatic_transmissions 表或manual_transmissions 表中的任何关联记录。使用这种方法是因为 automatic_transmissions 表和 manual_transmissions 表都共享许多属性,但每个都有自己特定的属性。

我到现在还好吗?

现在采取一对一的非识别关系。什么,没有PK的桌子?为什么需要这样一张桌子?有哪些例子?它是如何使用的?

4

1 回答 1

0

假设您有一张汽车表和一张变速器表。每辆车都有一个变速器。在给定的时间,每个变速器只在一辆车上。然而,相同的变速器并不总是留在同一辆车上。有时,汽车的变速箱坏了,必须更换。有时,变速箱会从一辆破旧的汽车中取出并放入另一辆汽车中。

汽车和变速箱之间存在一对一的关系。然而,这是一种非识别关系,因为孩子的(传输)身份不依赖于父母(汽车)。

这些都不意味着“没有 PK 的表”。car 和 transmissions 表都有主键。只是汽车的PK不属于变速箱的PK。

于 2013-04-11T12:30:48.973 回答