数据库设计(一对一、一对多、多对多)

关联映射:一对一


一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。
数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。

一对一外键关联,图示如下:

数据库设计(一对一、一对多、多对多)_第1张图片

一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系。图示如下:

数据库设计(一对一、一对多、多对多)_第2张图片

 

关联映射:一对多


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

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

 

关联映射:多对多


多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。
数据库中的多对多关联关系一般需采用中间表(关系表)的方式处理,将多对多转化为两个一对多。
数据表间多对多关系如下图:

数据库设计(一对一、一对多、多对多)_第3张图片

你可能感兴趣的:(数据库)