❤️所谓的数据库物理外键和逻辑外键❤️
前言
当看到物理外键的时候,第一反应是有物理外键那一定有逻辑外键,那我熟悉的外键是什么?
物理外键指的是使用foreign key 作为外键关联另一张的字段的连接方法,而且限定了引擎为InnoDB,而逻辑外键,又叫做事实外键,是因为存在语法上的逻辑关联而产生的外键,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。
一、逻辑外键和物理外键的区别
内容 | 区别 | |
---|---|---|
逻辑外键 | 在数据库存储中,可以允许实际存储过程中对应关系对应出现偏差,就是应该有的没有,或者不应该有的有了 | 在数据库存储中,如果需要有就必须有,主要表现在删除操作( 插入修改也有表现,不如删除明显) |
物理外键 | 强制对应关系,强调数据完整性,操作中性能开销相对大,小数据库量推荐 | 不强制对应,只在代码中体现,操作开销小,如果代码质量不合格,垃圾数据会越来越多,大数据库量推荐。 |
二、外键的缺陷
- 数据库需要维护外键的内部管理
- 外键等于把数据的一致性事