一、一对多 关系
一对多,在多的一方建立外键(外键指向一的主键)
例如:
母亲,孩子两个实体(一对多)
母亲表: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 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。
这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。可以利用一对一关系来:
- 分割具有多列的表。
- 由于安全原因而隔离表的一部分。
- 保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据。
- 保存只适用于主表的子集的信息。