四 约束,多表关系维护

多表之间的关系如何维护

主键约束与唯一约束

主键约束:

  • 默认不为空,唯一
  • 外键都是指向另一张表的主键
  • 主键一张表只能有一个

唯一约束:

  • 列表的内容必须唯一,不能出现重复情况,为空
  • 唯一约束不可以作为其他表的外键
  • 可以有多个唯一约束

关于外键:

  • 外键约束:forerign key,一般在多的一方添加外键,指向一的一方。
  • 给product这个商品的cid添加一个外键约束: ALTER TABLE product ADD FOREIGN KEY(cno) REFERENCES category(cid);
  • 删除时,可以删除一对多中多的一方,比如可以删除某个商品,但如果一与多有对应关系,则不能直接删除一的一方,比如商品分类。 
  • 从分类表category中删除分类为5的信息,删除失败:DELETE FROM category WHERE cid = 5;
  • 需要在product表中将所有cno为5的商品删除,才可以删除非类表中cid为5的信息。

 

一对一建表:

建表原则: 合并一张表, 将主键建立关系 , 将它当作一对多的情况来处理

 

一对多建表

原则:

  • 将一对一的关系当成一对多的关系处理,从一张表中建立唯一外键,对应另一张表
  • 直接让两张表合并成一张表
  • 将两张表的主键建立起连接,让两张表里面主键相等

实际用途:用的不是很多,拆表操作

例如:相亲网站:将个人常用信息和不常用信息,减少表的臃肿

 

多对多建表:

  • 拆成一对多
  • ​ 创建一张中间表, 至少要有两个外键, 指向原来的表

例1:

 

 

 例2:

 

转载于:https://www.cnblogs.com/ltfxy/p/10225687.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值