素材牛VIP会员
如果一条数据在数据表中没用了,是删除它还是设置字段表示它已删除,那种方式更好?
 Am***ze  分类:SQL代码  人气:922  回帖:8  发布于6年前 收藏

经常遇到这种问题,我记得以前好像听人说过通过设置字段来表示它已被删除,我也一般是用这种方式,想知道哪一种会比较好?谢谢大家

讨论这个帖子(8)垃圾回帖将一律封号处理……

Lv6 码匠
雪***儿 职业无 6年前#1

看业务需求,未来要不要做数据分析,统计啊之类的场景.
如果有,就用标志位逻辑删除,如果没有的话,直接删掉就好了.
建议还是逻辑删除,定期备份就好了~

Lv4 码徒
23***om JS工程师 6年前#2

做逻辑删除,用status字段,0:删除,1:启用2:停用,....

逻辑删除的数据后期用脚本定时清理来清除垃圾数据,最好不要在程序里有delete语句,小心造成误删全表数据

Lv4 码徒
阁***起 其它 6年前#3

不删:在很多情况下,只是多占些磁盘。并不影响系统性能

删掉:也无所谓的,在绝大部分情况下,你预计的用到这些已删除的数据的场景其实不会出现。如果会出现,那么这个功能应该是标记,而不是软删除了。

所以呢,当你以后遇到这类问题不知所措的时候,那就选第一个好了。因为选项之间并没有太大差别,没什么好选的。

Lv6 码匠
lo***yo UI设计师 6年前#4

打标记好,万一是某人发布了敏感言论然后删除,那么警察叔叔查水表的难度肯定比用delete删除的难度小的多。

Lv2 入门
馨***茂 站长 6年前#5

建议打标记,具体原因可以参加我以前摘抄的文章。

数据库设计原则–不要删除数据
http://xingaiming.com/2015/12...

sf上类似的问题讨论:
https://segmentfault.com/q/10...

Lv3 码奴
Jo***91 CEO 6年前#6
  1. 逻辑删除:即标记删除,设置一个状态字段,判断删除,该类删除主要使用于一些,用户删除,但是可能网站还会使用到的一些数据,也包含,用户删除以后还想去恢复的一部分数据。

  2. 物理删除:即直接删除该数据。这类的删除适用于使用之后,无意义的数据,比如我们现在注册发送的验证码等类型的数据。

  3. 其实我们数据不做物理删除,我们也是为了以后能更好的勾勒出用户在本站的信息图谱(包括爱好,住址,曾发布,浏览历史等等),说白了,就是有利于我们分析用户行为的数据都不要做物理删除!

Lv4 码徒
sk***e4 页面重构设计 6年前#7

如果敏感数据可以标志字段,如果不是直接物理删除

Lv6 码匠
li***28 Linux系统工程师 6年前#8

不重要的数据直接删除就行,像用户信息做字段删除好些。。。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取