如果一条数据在数据表中没用了,是删除它还是设置字段表示它已删除,那种方式更好?
经常遇到这种问题,我记得以前好像听人说过通过设置字段来表示它已被删除,我也一般是用这种方式,想知道哪一种会比较好?谢谢大家
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
经常遇到这种问题,我记得以前好像听人说过通过设置字段来表示它已被删除,我也一般是用这种方式,想知道哪一种会比较好?谢谢大家
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
逻辑删除:即标记删除,设置一个状态字段,判断删除,该类删除主要使用于一些,用户删除,但是可能网站还会使用到的一些数据,也包含,用户删除以后还想去恢复的一部分数据。
物理删除:即直接删除该数据。这类的删除适用于使用之后,无意义的数据,比如我们现在注册发送的验证码等类型的数据。
其实我们数据不做物理删除,我们也是为了以后能更好的勾勒出用户在本站的信息图谱(包括爱好,住址,曾发布,浏览历史等等),说白了,就是有利于我们分析用户行为的数据都不要做物理删除!
建议打标记,具体原因可以参加我以前摘抄的文章。
数据库设计原则–不要删除数据
http://xingaiming.com/2015/12...
sf上类似的问题讨论:
https://segmentfault.com/q/10...
不删:在很多情况下,只是多占些磁盘。并不影响系统性能
删掉:也无所谓的,在绝大部分情况下,你预计的用到这些已删除的数据的场景其实不会出现。如果会出现,那么这个功能应该是标记,而不是软删除了。
所以呢,当你以后遇到这类问题不知所措的时候,那就选第一个好了。因为选项之间并没有太大差别,没什么好选的。
打标记好,万一是某人发布了敏感言论然后删除,那么警察叔叔查水表的难度肯定比用delete删除的难度小的多。
看业务需求,未来要不要做数据分析,统计啊之类的场景.
如果有,就用标志位逻辑删除,如果没有的话,直接删掉就好了.
建议还是逻辑删除,定期备份就好了~
如果敏感数据可以标志字段,如果不是直接物理删除
不重要的数据直接删除就行,像用户信息做字段删除好些。。。
做逻辑删除,用status字段,0:删除,1:启用2:停用,....
逻辑删除的数据后期用脚本定时清理来清除垃圾数据,最好不要在程序里有delete语句,小心造成误删全表数据
那很多数据都用假删除的话,那些长期用不着的假删除数据怎么处理呢?岂不是浪费很多空间?