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

数据库表与表之间一般存在三种关系:一对一,一对多/多对一,多对多。

一对一(不常用)

一个人 => 一个身份证号
一个人 => 一个国籍
一个学生 => 一个学号
一个人 => 一个性别
...
如下:
数据库之表关系(一对一,一对多,多对一,多对多)_第1张图片
这里我们通过 pid 与 cid 的一对一关系来,查找一个人对应的一个身份证号,这里要么只存在一条对应的数据,要么没有数据.
当然这种一对一的关系不常用

一对多/多对一

班级表与学生表
从班级表的角度看:一个班级 => 多个学生
从学生表的角度看:多个学生 => 一个班级
一对多或者多对一的表关系中,我们会在多的那张表中去维护两张表之间的关系

多对多

学生表与课程表
从学生表的角度看:一个学生 => 多个课程
从课程表的角度看:一个课程 => 多个学生
所以多对多这种关系,我们一般会有一个中间表去维护两张表之间的关系
数据库之表关系(一对一,一对多,多对一,多对多)_第2张图片
数据库之表关系(一对一,一对多,多对一,多对多)_第3张图片

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