表与表的关系

一对多 一对一 多对多

一对多

一班级有多个学生 多个学生只能读一个班级 这样的关系就是一对多关系

这种情况下 有一个关联的列 叫做外键列 它一般要设置在多方表中

image.png

一多对的其它情况:

专职工作 一个公司可以有多个员工 多个员只能在一个公司里工作

一对一的表

学生信息表 与 学生详情表 是一对一的关系 因为一个学生 都会有一个常用信息和一个详细信息两种数据 日常工作中我们主要看常用信息 如果有特别情况 我们会通过常用信息的关联数据 找到详细信息

一对一的表它的外键列 一般放在常用表中

image.png

一对一的其它情况

A数据只能对应一个B数据 B数据只能对应与它相关联的A数据

夫妻

多对多

A可以有多个B B可以有多个A

一个老师可以带多个班级 一个班级可以有多个老师带

外键存放在哪里? 外键放在第三张表中

image.png

其它的多对多关系

社团与学生 一个社团可以有多个学生 一个学生可以加入多个社团

自关联

有层级的数据适合实现自关联

例如: 省市区街等等 老总,副总,经理等等

image.png

自关联演练

查武汉市下有哪些区

方案1 自关联的连表查询完成

image.png

当所有的数据可以查出来后 只需要加where 条件筛选即可

方案2 子查询方式

image.png