将一张表的主键作为外键关联到另一张表中

时间:2024-04-01 20:13:46

将一张表的主键作为外键关联到另一张表中


1、外键的介绍

设置外键的作用很明显,就是讲两个表的数据产生关联,就比如个人信息表和部门表之间,部门表的部门id就可以作为一个外键存放于个人信息表中,除此之外设定外键在父子表中的维护关系,可以达到一个类似于级联的操作,就是当父级表(主键作为外键的表)数据变化时,子表(拿着别的表的主键作为自己的外键的表)就会有相应的数据变化;


2、使用Navicat创建外键

其实只要找到外键设定的地方就可以了,很简单~,如下图:
将一张表的主键作为外键关联到另一张表中
只要按照那一列的名字选择好对应的外键表、外键列等信息即可,其中有一个比较重要的就是外键维护关系的选择,就是最后两栏~


3、外键的维护关系设定及其选择

外键的维护关系不论是外键的更新还是删除都分为四级,下面是对四级的介绍;

  • CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;
  • SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
  • RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
  • NO ACTION:同 RESTRICT,也是首先先检查外键;

关于这四种维护关系的选择需要根据情况而定,比如:

  • 订单表和人员表,当用户注户后,该用户的订单信息需要被清空(至少在当前正在使用的数据库中需要被移出),那么订单表中的外键-人员id,他的维护关系就需要定为"CASCADE"级别的;

其他的情况就不一一介绍了;


《END》