08 表关系:一对一、多对一、多对多

表关系

数据库中,表与表之间的关系,决定了后期表结构的设计

分类

一对一

一张表中的一条记录与另外一张表中的记录一一对应
学生信息表:
常用信息:学生ID、姓名、年龄、性别
不常用信息:籍贯、婚否、住址

学生ID 姓名 年龄 性别 籍贯 婚否 住址

拆分表:
常用表

学生ID 姓名 年龄 性别

不常用表

学生ID 籍贯 婚否 住址

其中,学生ID是连接2张表的唯一值

一对多(多对一)

通常一对多的关系设计方案是:在‘多’关系的表中,去设置一个字段,这个字段就是 ‘一’ 关系的主键

比如:一个母亲可以有多个孩子,一个孩子只能有一个母亲
母亲表(一 的关系):

母亲ID 姓名 年龄 身高

孩子表(多 的关系):

孩子ID 母亲ID 姓名 年龄 身高

多对多

多对多:一张表中的一条记录,在另外一张表中可以匹配到多条记录;反过来,另外一张表中的一条记录,在一张表中可以匹配多条记录

例如:师生关系
1、 一个老师教过多个班级的学生
2、 一个学习上过多个老师的课程

老师表:

Tid name age gender
t1 张三 32
t2 李四 40
t3 王五 45

学生表:

Sid name age gender
s1 小兰 22
s2 小明 23
s3 小绿 26
s4 小红 30

中间表: id主键id Tid:老师id Sid学生id
通过设置了一个 中间表,可以将 学生表和老师表的关系,联系起来

所以,一般多对多的表的设计的解决方案是:增加一个中间关系表,让中间表与其他的表形成2个多对一的关系
多对一对的解决方案是:在‘多’关系表中设置一个 ‘一’ 表中的主键

id Tid Sid
1 t1 s1
2 t1 s3
3 t2 s1
3 t2 s3
4 t3 s2
4 t3 s2
posted @ 2024-07-10 16:17  songxia777  阅读(30)  评论(0编辑  收藏  举报