← 返回首页
MySQL基础教程(九)
发表时间:2020-03-16 20:59:55
讲解实体之间的关联关系。

数据库实体间有三种对应关系:一对一,一对多,多对多。

1.一对一

一对一关系示例:一个学生对应一个学号,或者每个人都有唯一的身份证编号。一对一的关系出现的次数也是最少的。

2.一对多(多对一)

一对多关系示例: 一个学生只属于一个班,但是一个班级有多名学生。 一个人多个手机号码。 一个公民有多个银行账号。

我们以学生和班级之间的关系来说明一对多的关系处理方法。 假设现有基本表学生表(学号,姓名,……),班级表(班级号,备注信息,……)。

方法一: 新增一个关系表,用来表示学生与班级的属于关系,该关系表包含字段(学生号,班级号)。通过学生号与班级号的对应关系表示学生属于的班级。 方法二: 在学生表中新增字段(班级号),该字段作为学生表的外键与班级表中的班级号关联。每一个学生实体在班级号字段的值,表示该学生属于的班级。 小结:一般情况下,一对多关系采用方法二来处理。一对多的两个实体间,在“多”的实体表中新增一个字段,该字段是“一”实体表的主键。

3.多对多

多对多关系示例: 一个学生选修多门课程,一个课程有多个学生选修。 一个学生有多个老师,一个老师教多个学生。

我们以学生和课程之间的关系来说明多对多的关系处理方法。

在多对多关系中,我们要新增加一个关系表。如在上面示例中,在学生表和课程表的基础上增加选课表来表示学生与课程之间的多对多关系。在选课表中,必须含有的属性有学生号和课程号。(学生号,课程号)这个属性集刚好也就是选课表的关键字。