四 约束,多表关系维护

多表之间的关系如何维护

主键约束与唯一约束

主键约束:

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

唯一约束:

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

关于外键:

  • 外键约束: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:

猜你喜欢

转载自www.cnblogs.com/ltfxy/p/10225687.html