表与表之间的关系 - 日理万妓 2022-05-23 00:04 251阅读 0赞 # **表与表之间的关系** # 表与表之间的关系(设计表时考虑的)有三种:一对一、一对多(多对一)、多对多。 ## **一对一** ## 一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应;反之亦然。 ![70][] ![70 1][] 一个常用表中的一条记录,永远只能在一张不常用表中匹配一条记录;反过来,一个不常用表中的一条记录在常用表中也只能匹配一条记录:一对一关系。 在实际的开发中应用不多,因为一对一可以创建成一张表。 **建表原则:** \* 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。 \* 外键是主键:主表的主键和从表的主键,形成主外键关系。 ## **一对多** ## 一对多:一张表中有一条记录可以对应另外一张表中的多条记录;但是反过来,另外一张表的一条记录只能对应第一张表的一条记录。这种关系就是一对多或者多对一。 ![70 2][] ![70 3][] ![70 4][] 分类和商品:一个分类对应多个商品,一个商品只能属于某一个分类。 部门和员工:一个部门可以有多个员工,一个员工只能属于某一个部门。 **建表原则:** \* 在多的一方创建一个字段,字段作为外键指向一的一方的主键。 ## **多对多** ## 多对多:一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录也能对应A表中的多条记录:多对多的关系。 ![70 5][] ![70 6][] 增加中间表之后,中间表与老师表形成了一对多的关系,而且中间表是多表,维护了能够唯一找到一表的关系;同样的,学生表与中间表也是一个一对多的关系。一对多的关系可以匹配到关联表之间的数据。 学生找老师:找出学生id->中间表寻找匹配记录(多条)\->老师表匹配(一条) 老师找学生:找出老师id->中间表寻找匹配记录(多条)\->学生表匹配(一条) **建表原则:** \* 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。 [70]: /images/20220523/f0ba018561d74f08a5c2a2353029a9ed.png [70 1]: /images/20220523/10e458f31f9449d1a28f467f492a7424.png [70 2]: /images/20220523/2842e3ff1f5e483e9d8f61d9e9ebd27f.png [70 3]: /images/20220523/8d4db5a2827a46f1b69192ae940ed246.png [70 4]: /images/20220523/0309fdd5b9254b8082c3e40b90ce2eb1.png [70 5]: /images/20220523/b88941aa9e1c48e3a26a8fe4e7e17b2a.png [70 6]: /images/20220523/720e5cd59ddb4e658d9a870b4fed6489.png
还没有评论,来说两句吧...