介绍
表与表的关系有以下几种:
- 一对一
- 一对多(多对一)
- 多对多
1. 一对一
A表的 一条记录 对应 B表的 一条记录
应用场景不多,因为可以创建成一张表
案例:
某表的字段过多,比如有50多个字段,经过分析这些字段有20个是常用字段,另外30个是不常用字段,所以将其拆分成2个表,主表 保存常用字段,从表 保存不常用字段
表设计:
- 主表的主键 与 从表主键 相同
- 在从表中创建一个字段,保存主表的主键
2. 一对多(多对一)
A表的 一条记录 对应 B表的 多条记录,但是,B表的 一条记录 对应 A表的 一条记录
A表 就是 一对多 中的 一
B表 就是 一对多 中的 多
应用场景最多
案例
- 部门表 与 员工表
- 作者表 与 文章表
- 班级表 与 学生表
- 用户表 与 收货地址表
表设计:
在 多的一方 创建一个字段,保存 一的一方 的主键
student表增加teacher_id字段,如下:
| sid | sname | teacher_id |
|---|---|---|
| 1 | 李雷 | 高老师的id |
| 2 | 韩梅梅 | 高老师的id |
| 3 | 川普 | 高老师的id |
主表、从表
一对多 中,一 方称之为 主表,多 方称之为 从表
班主任 与 学生 的关系是 一对多,所以 班主任 是 主表,学生 是 从表
多对一
与 一对多 是一个含义,就看从哪个方向说
班主任 与 学生 的关系是 一对多
学生 与 班主任 的关系是 多对一
3. 多对多
A表的 一条记录 对应 B表的 多条记录,B表的 一条记录 也能对应 A表中的 多条记录
应用场景较多
案例
- 学生表 与 专业表
- 分类表 与 电影表
表设计
需要创建 中间表,中间表至少两个字段,分别保存两表的主键




