一对多关系模型
在“课程花名册”数据库中,一位教师可以教授零个或多个课程,而一个课程只能由一位教师教授。在“公司”数据库中,一位经理可以管理零个或多个员工,而一个员工只能由一位经理管理。在“产品销售”数据库中,一位客户可以下多个订单,而一个订单只能由一位特定客户下。这种关系被称为一对多关系。
一对多关系不能用单个表来表示。例如,在“课程花名册”数据库中,我们可能从一个名为教师的表开始,该表存储有关教师的信息(如姓名、办公室、电话和电子邮件)。为了存储每位教师教授的课程,我们可以创建class1、class2、class3等列,但会立即遇到要创建多少列的问题。另一方面,如果我们从一个名为课程的表开始,该表存储有关课程的信息,我们可以创建额外的列来存储有关(一位)教师的信息(如姓名、办公室、电话和电子邮件)。但是,由于一位教师可以教授许多课程,因此其数据会在课程表中的多行中重复。
为了支持一对多关系,我们需要设计两个表:例如,一个名为课程的表来存储有关课程的信息,其中classID作为主键;以及一个名为教师的表来存储有关教师的信息,其中teacherID作为主键。然后,我们可以通过在课程表(“多”端或子表)中存储教师表(“一”端或父表)的主键(即teacherID)来创建一对多关系,如下所示。
子表课程中的teacherID列称为外键。子表的外键是父表的主键,用于引用父表。
广告