日常记录

86 阅读1分钟

哈哈哈,有趣的是编程的思想的转变也和参禅一般.

从一开始设计数据库完全按照三大范式 [1]
到疯狂去范式化 [2]
最后到了尽量适当范式化[3]

[1] 按照学校学的知识。(看山是山)
[2] 和兄弟讨论学习后,进行冗余字段,提高开发效率,减少联表操作,原本需要联表的操作,单表配上mp是非常舒服且快速的。(看山不是山)
[3] 去范式化不仅仅是更新两个字段而已,在比较大的项目中,模块间有冗余字段,很不利于模块的解耦,试想下A负责订单模块,B负责售后模块,售后模块冗余了订单状态的字段,当A更新订单状态时候,B不及时更新订单状态就会有很大问题,至于性能问题则完全可以通过更适当的方式去解决,如缓存,索引异步等。(看山还是山)

PS:背景是 业务需要在两个模块间冗余一个字段,但负责这模块的开发(我同事),非常抵触这个业务需求。并且提出了其它解决方案。刚开始我还不明白为啥不直接按照业务的要求改了完事。直到今天CR会议提出来才明白人家的考量。