表与表之间的关系

表与表之间的关系

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

一对一

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

 


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

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

建表原则:

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

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

 

一对多

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

 

 

 

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

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

建表原则:

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

 

多对多

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

 

 

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

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

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

建表原则:

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

 

 

 

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值