经常遇到这种问题,我记得以前好像听人说过通过设置字段来表示它已被删除,我也一般是用这种方式,想知道哪一种会比较好?谢谢大家
经常遇到这种问题,我记得以前好像听人说过通过设置字段来表示它已被删除,我也一般是用这种方式,想知道哪一种会比较好?谢谢大家
建议打标记,具体原因可以参加我以前摘抄的文章。
数据库设计原则–不要删除数据
http://xingaiming.com/2015/12...
sf上类似的问题讨论:
https://segmentfault.com/q/10...
不删:在很多情况下,只是多占些磁盘。并不影响系统性能
删掉:也无所谓的,在绝大部分情况下,你预计的用到这些已删除的数据的场景其实不会出现。如果会出现,那么这个功能应该是标记,而不是软删除了。
所以呢,当你以后遇到这类问题不知所措的时候,那就选第一个好了。因为选项之间并没有太大差别,没什么好选的。
做逻辑删除,用status字段,0:删除,1:启用2:停用,....
逻辑删除的数据后期用脚本定时清理来清除垃圾数据,最好不要在程序里有delete语句,小心造成误删全表数据
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
逻辑删除:即标记删除,设置一个状态字段,判断删除,该类删除主要使用于一些,用户删除,但是可能网站还会使用到的一些数据,也包含,用户删除以后还想去恢复的一部分数据。
物理删除:即直接删除该数据。这类的删除适用于使用之后,无意义的数据,比如我们现在注册发送的验证码等类型的数据。
其实我们数据不做物理删除,我们也是为了以后能更好的勾勒出用户在本站的信息图谱(包括爱好,住址,曾发布,浏览历史等等),说白了,就是有利于我们分析用户行为的数据都不要做物理删除!