外键的优点:
- 降低开发成本,借助数据库自身触发器来保持数据一致性并更新。
- 将数据库设计人员和开发人员职责分离。
外键的缺点:
- 需要数据库软件内部维护。
- 把事务交给DB来完成。
- 增、删、更新都会进行 check 耗费资源。
- 因为外键会请求关联表进行加锁,所以会导致死锁。
现在实际工作中很少使用外键,更多是为了并发考虑。打破硬性的规范,获得更大的灵活性(比如,不由DB实现而由spring的事务实现),并最终在总体上实现一致性。
外键的优点:
外键的缺点:
现在实际工作中很少使用外键,更多是为了并发考虑。打破硬性的规范,获得更大的灵活性(比如,不由DB实现而由spring的事务实现),并最终在总体上实现一致性。