rt, 公司的规范是要加。为什么要加,道理我也懂。但是就我个人的开发经历而言,更多的时候对于这种字段感觉只是个范式一样的东西,而基本没有这样实践。
最近这个公司就强行要求加,导致目前接手的老代码,所有的 sql 都带有 where flag = 1 这种过滤条件。但在真正业务删除的时候,执行的仍然是 delete from...
我个人观点是不用加,理由: 1.flag = 1 在 flag 不是索引的情况下(通常也不会给 flag 建索引),查询必然有个筛选的过程,就算查询命中索引,仍然要逐条过滤数据。数据表量越大,影响越大。
2.flag 会影响唯一索引, 不允许存在两条一样的唯一索引数据,只是 flag 不相同。
当然,加上逻辑删除的优点主要就是恢复数据方便,对于程序员找问题也比较友好,类似回收站。
大家怎么看这个问题?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.