4.4.3 表间关系的分类
2025年09月21日
4.4.3 表间关系的分类
表之间有3种关系。创建关系的类型取决于相关列是如何定义的。
1.一对多关系
一对多关系是最普通的一种关系。例如,学生表中的“学生编号”一行可以匹配选课成绩表中的多行(即一个学生可以选多门课),但是选课成绩表中的一行只能匹配学生表中的一行。也就是说,学生表和选课成绩表之间具有一对多关系,一个学生可以选学多门课,选课成绩表中多个成绩出自同一个学生。这里的“学生编号”是学生表的主键,也是选课成绩表的主键。
2.多对多关系
在多对多关系中,A表中的一行可以匹配B表中的多行,反之亦然。例如,学生表与课程表,一个学生可以选择多个课程,一门课程可由多个学生选择,可将学生表与课程表之间的关系称为多对多关系。在处理多对多的关系时,常常将多对多的关系转换成两个一对多的关系。
要创建这种关系,需要定义第3个表,称为结合表,它的主键由A表和B表的外部键组成。例如,成绩表就是这样的表 成绩表中的“学生编号”和“课程号”的组合为主键。
3.一对一关系
在一对一关系中,A表中的一行只能匹配于B表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。
一般来说,按照这种方式相关的信息都在一个表中,可以利用一对一的关系来实现。例如,有时不同的部门各自管理自己的数据,而这些数据又有联系,如部门的人事表隶属于人事处,工资表隶属于财务处,这两个表通过“人员编号”可建立一对一的关系。