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

时间:2021-10-01 11:59:04

一、一对多 关系

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

例如:

母亲,孩子两个实体(一对多
母亲表: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 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。

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

  • 分割具有多列的表。

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

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

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