创新路
我们一直在努力

MySQL学习笔记(25)

多对多

多对多: 一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录; 同时B表中的一条记录也能对应A表中的多条记录: 多对多的关系

举个栗子:

教师和学生的多对多关系。每个学生有不同学科的老师;同样,每个老师也有多个学生;所以我们建立教师和学生两张独立的数据表。

教师表

image.png

学生表

image.png

以上两张表单实现了实体的设计,但是没有维护实体的关系。要解决该问题,首先考虑在学生表中增加老师字段,或在教师表中增加学生字段;但不管在哪张表中增加字段, 都会出现一个问题: 该字段要保存多个数据, 而且是与其他表有关系的字段, 不符合表设计规范。

因此可以增加一张新表,专门维护两张表之间的关系。

关系表

image.png

关系表与老师表形成了一对多的关系;同样的,学生表与关系表也是一个一对多的关系;通过关系表双向一对多的关系可以匹配到关联表之间的数据,从而实现教师表和学生表之间的多对多关系查询。

未经允许不得转载:天府数据港官方信息博客 » MySQL学习笔记(25)

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机