表关系类型 (Visual Database Tools)
关系通过匹配键列(通常是两个表中同名的列)中的数据来发挥作用。在大多数情况下,关系将一个表的主键(它为每行提供唯一标识符)与另一表的外键中的项相匹配。例如,通过在 titles
表中的 title
_id
列(主键)和 sales
表的 title
_id
列(外键)之间创建关系,可以使书籍销售额与售出的具体书名相关联。
表之间有三种类型的关系。所创建的关系类型取决于相关列是如何定义的。
- 一对多关系
- 多对多关系
- 一对一关系
一对多关系
一对多关系是最常见的关系类型。在这种关系中,表 A 中的一行在表 B 中可以有许多匹配行,但表 B 中的一行在表 A 中只能有一个匹配行。例如,publishers
和 titles
表具有一对多关系:每个出版商可出版很多书籍,但每本书籍只能出自一个出版商。
如果在相关列中只有一列是主键或具有唯一约束,则会创建一对多关系。
一对多关系的主键方由键符号表示。关系的外键方由无穷符号表示。
多对多关系
在多对多关系中,表 A 中的一行在表 B 中可以有许多匹配行,反之亦然。您需要通过定义第三个表(称为联接表)来创建这样的关系,该表的主键由来自表 A 和表 B 的外键组成。例如,authors
表和 titles
表具有多对多关系,该关系由这两个表中任意一个表与 titleauthors
表之间的一对多关系定义。titleauthors
表的主键是 au_id
列(authors
表的主键)和 title_id
列(titles
表的主键)的组合。
一对一关系
在一对一关系中,表 A 中的一行最多只能与表 B 中的一行相匹配,反之亦然。当两个相关列都是主键或都具有唯一约束时,将创建一对一关系。
这种关系不常见,因为以这种方式相关的多数信息都在一个表中。一对一关系可以用于:
- 分割一个含有许多列的表。
- 由于安全原因而隔离表的某一部分。
- 存储只需删除表就会很容易删除的临时数据。
- 存储只应用于主表的一个子集的信息。
一对一关系的主键方由键符号表示。外键方也由键符号表示。
请参阅
概念
引用完整性概述 (Visual Database Tools)
其他资源
使用关系 (Visual Database Tools)
使用键 (Visual Database Tools)