表与表之间的关系

表与表之间的关系

表与表之间的关系(设计表时考虑的)有三种:一对一、一对多(多对一)、多对多。

一对一

一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应;反之亦然。

 


一个常用表中的一条记录,永远只能在一张不常用表中匹配一条记录;反过来,一个不常用表中的一条记录在常用表中也只能匹配一条记录:一对一关系。

在实际的开发中应用不多,因为一对一可以创建成一张表。

建表原则:

外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。

外键是主键:主表的主键和从表的主键,形成主外键关系。

一对多

一对多:一张表中有一条记录可以对应另外一张表中的多条记录;但是反过来,另外一张表的一条记录只能对应第一张表的一条记录。这种关系就是一对多或者多对一。

 

 

 

分类和商品:一个分类对应多个商品,一个商品只能属于某一个分类。

部门和员工:一个部门可以有多个员工,一个员工只能属于某一个部门。

建表原则:

* 在多的一方创建一个字段,字段作为外键指向一的一方的主键。

多对多

多对多:一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录也能对应A表中的多条记录:多对多的关系。

 

 

增加中间表之后,中间表与老师表形成了一对多的关系,而且中间表是多表,维护了能够唯一找到一表的关系;同样的,学生表与中间表也是一个一对多的关系。一对多的关系可以匹配到关联表之间的数据。

学生找老师:找出学生id->中间表寻找匹配记录(多条)->老师表匹配(一条)

老师找学生:找出老师id->中间表寻找匹配记录(多条)->学生表匹配(一条)

建表原则:

* 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。

猜你喜欢

转载自blog.csdn.net/lz1170063911/article/details/80498429