2.6.2 关系类型
2025年10月12日
2.6.2 关系类型
关系是通过匹配键列(通常是两个表中的同名列)中的数据工作的。大多数情况下,关系将一个表的主键与另一个表的外键中的项匹配。如通过“出版商”表中的出版商ID(主键)和“书籍”表中的出版商ID(外键)之间创建关系,可以将出版商与其所出版的特定书籍相关联。在关系数据库中,表之间的关系主要有三种类型。关系类型取决于相关列的定义方式。
1.一对一关系
对A表中的每条记录来说,在B表中有且仅有一条匹配的记录,反之亦然。如果两个相关列都是主键,则定义一对一关系。这种类型关系不常见,通常情况下,一对一关系中的其中一个表中的数据要融合进另一张表中。
2.一对多关系
对A表中的每条记录来说,在B表中可存在多条匹配的记录。反之,B表中每个记录在A表中只有一条记录与之匹配。A表称为一方,B表称为多方。这是一种最常见的关系类型。如上面的“出版商”表和“书籍”表就是一对多关系。一般,对于一对多关系,一方表中相关列是主键,这个表称为主表,多方表中相关列是外键,这个表称为相关表。
3.多对多关系
A表中的每条记录在B表中有任意数目匹配的记录,反之亦然。此类型的关系必须通过第三个表(称为联接表)来达成。联接表的主键包含两个字段,分别为来自A表和B表的外键。多对多关系实际上是两个与第三个表之间的一对多关系。如“订单”表和“产品”表之间是多对多关系,通过与第三个表“订单明细”建立两个一对多关系来实现。一份订单可以包含多个产品,一个产品可包含在多份订单中。