在晚上看到的一网友的评论,引起我的共鸣,一直以来的想法不知如何表述、也不知对不对。于是,[ 逻辑外键代替物理外键 ]便是我想表达的意思。

逻辑外键代替物理外键_应用层

(1)数据库外键:

有几个特点:1.需要维护外键;2.外键相当于代码应用层的实现转移到了数据库内部实现;3.在做一些增删更操作时,会因外键触发一些相关的检查工作,消耗资源,效率更低;4.外键可能会请求其它表加锁,而造成死锁情况。

 

(2)思考:

1. 从架构来说,加入外键,为了更好的保证数据一致性。开发中,初期可以设计良好的外键;在后期为了更高的效率+更好的可扩展性,可删去外键。

2. 数据库难以扩展,服务器较数据库扩展 成本更低。因此:可以讲事务管理从DB转移到应用层,让server承受压力会更好一些。