首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别和非识别关系

识别和非识别关系
EN

Stack Overflow用户
提问于 2012-03-17 21:55:23
回答 1查看 230关注 0票数 0

无法理解识别关系的主要思想:

标识关系是子表中的行是否存在依赖于父表中的行的情况。这可能会让人感到困惑,因为现在的常见做法是为子表创建一个伪键,而不是将外键设置为子表的主键的父键部分。从形式上讲,这样做的“正确”方法是使外键成为孩子的主键的一部分。但逻辑关系是子代不能离开父代而存在。

例如:一个人有一个或多个电话号码。如果他们只有一个电话号码,我们可以简单地将其存储在Person列中。由于我们希望支持多个电话号码,因此我们创建了第二个表PhoneNumbers,其主键包括引用Person表的person_id。

但是,如果person_id是主键,那么人怎么可能有多个电话号码呢?或者可能的person_id必须是复杂主键的一部分,并且不能单独标识表中的项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-17 22:14:06

或可能的person_id必须是复杂主键…的一部分?

一点儿没错。在您引用的示例中,PhoneNumbers的主键可能类似于(person_id, number)。这意味着没有两个记录PhoneNumbers可以具有相同的person_idnumber;它们可以具有相同的person_id,它们可以具有相同的number,但不能同时具有这两个记录。(换句话说,person_idnumber一起“唯一地标识”PhoneNumbers中的一条记录。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9750514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档