数据库之表关系(一对一,一对多,多对一,多对多)

数据库表与表之间一般存在三种关系:一对一,一对多/多对一,多对多。
一对一(不常用) 一个人 => 一个身份证号
一个人 => 一个国籍
一个学生 => 一个学号
一个人 => 一个性别
...
如下:
数据库之表关系(一对一,一对多,多对一,多对多)
文章图片

这里我们通过 pid 与 cid 的一对一关系来,查找一个人对应的一个身份证号,这里要么只存在一条对应的数据,要么没有数据.
当然这种一对一的关系不常用
一对多/多对一 班级表与学生表
从班级表的角度看:一个班级 => 多个学生
从学生表的角度看:多个学生 => 一个班级
一对多或者多对一的表关系中,我们会在多的那张表中去维护两张表之间的关系
多对多 【数据库之表关系(一对一,一对多,多对一,多对多)】学生表与课程表
从学生表的角度看:一个学生 => 多个课程
从课程表的角度看:一个课程 => 多个学生
所以多对多这种关系,我们一般会有一个中间表去维护两张表之间的关系
数据库之表关系(一对一,一对多,多对一,多对多)
文章图片

数据库之表关系(一对一,一对多,多对一,多对多)
文章图片

    推荐阅读