表关系(一对一、一对多、多对多)

本文介绍了数据库中的三种基本关系类型:一对多、多对多和一对一。一对多关系通常在多的一方设置外键;多对多关系需要通过中间表来建立连接;一对一关系则在双方或一方设置主键约束,用于存储互补或临时数据,以实现数据的合理组织和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、一对多 关系

一对多,在多的一方建立外键(外键指向一的主键)

例如:

母亲,孩子两个实体(一对多)
母亲表:ID(P),名字,年龄,性别
孩子表:ID(P),名字,年龄,性别
解决方案:在某一张表中增加一个字段,能够找到另外一张表中的记录:在孩子表中增加一个字段
指向母亲表,因为孩子表的记录只能匹配到一条母亲表的记录。
母亲表:ID(P),名字,年龄,性别
孩子表:ID(P),名字,年龄,性别,母亲表ID(母亲表主键)

二、多对多 关系

多对多的关系,就是新创建一张中间表,以保证二者之间的联系。

老师表 T_ID(P),姓名,性别
学生表 S_ID(P),姓名,性别
解决方案:增加一张中间关系表
老师与学生的关系表:ID(P),T_ID,S_ID 
老师表与中间表形成一对多的关系,而中间表是多表;维护了能够唯一找到一表的关系;
同样的学生表与中间表也是一个一对多的关系; 
学生找老师:找出学生ID--->中间表寻找匹配记录(多条)--->老师表匹配(一条)
老师找学生:找出老师ID--->中间表寻找匹配记录(多条)--->学生表匹配(一条)

三、一对一 关系

一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。

这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。可以利用一对一关系来:

  • 分割具有多列的表。

  • 由于安全原因而隔离表的一部分。

  • 保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据。

  • 保存只适用于主表的子集的信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值