请问大家在什么场景下会使用软删除?

我的理解是:

  1. 需要 恢复数据 功能的时候,使用 软删除
  2. 误删代价无法承受,使用 软删除

假如有以下表:

  1. 用户表
  2. 订单表
  3. 资产表

你们会给这些表添加软删除吗?
平时大家在开发中 软删除 使用的多吗?
尤其是中小型项目,真的有必要使用它吗?

希望大家指点一二,谢谢。😊

我从未见过一个早起、勤奋、谨慎,诚实的人抱怨命运。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

我个人理解是否用软删除,看这个数据在整个系统中是否被其它数据所依赖(后续还是否有价值)。如果因为数据的物理删除而导致其它表产生脏数据的话,那么建议使用软删除,或者用状态来管理有效和无效数据。

比如用户表删了某个用户,那么这个用户的订单数据就会成为孤立的脏数据,如果后期需要从订单关联用户的时候就会出现问题。

4个月前 评论
讨论数量: 19

我个人理解是否用软删除,看这个数据在整个系统中是否被其它数据所依赖(后续还是否有价值)。如果因为数据的物理删除而导致其它表产生脏数据的话,那么建议使用软删除,或者用状态来管理有效和无效数据。

比如用户表删了某个用户,那么这个用户的订单数据就会成为孤立的脏数据,如果后期需要从订单关联用户的时候就会出现问题。

4个月前 评论

什么业务都没有真删除过

4个月前 评论

我个人理解是否用软删除,看这个数据在整个系统中是否被其它数据所依赖(后续还是否有价值)。如果因为数据的物理删除而导致其它表产生脏数据的话,那么建议使用软删除,或者用状态来管理有效和无效数据。

比如用户表删了某个用户,那么这个用户的订单数据就会成为孤立的脏数据,如果后期需要从订单关联用户的时候就会出现问题。

4个月前 评论

@最闲的码农 那请问你是在所有的模型都添加了软删除吗?

4个月前 评论
最闲的码农 4个月前
最闲的码农 4个月前

和其它表有关联的得用软删除,如商品表,无论是否删除商品你要保证订单数据能正确呈现这个商品。 主要还是看你这个表的重要程度吧,个人理解。

4个月前 评论
人艰不拆 4个月前
zhangsansan957 (作者) 4个月前
Jane→ 4个月前
小李世界

现在有明文规定,需要用户可以注销账号。

4个月前 评论

@小李世界 假如用户注销账号是 硬删除,那这个用户曾经的活动轨迹是不是要一并删除?这样的话设计表的时候所有与用户表相关的都需要添加 外键约束

4个月前 评论
小李世界 4个月前
MArtian (作者) (楼主) 4个月前
Complicated

没有特殊说明,都是软删除

4个月前 评论

所有情况,都用软删除,就对了

4个月前 评论

不想背锅就用软删除

4个月前 评论

不管什么任务都不要真正意义上的物理删除。

互联网的根基是数据,数据烂在数据库里面也不要做任何真正意义上的物理删除。

4个月前 评论
playmaker

软删除可以酌情用, 硬删除尽量不要用吧。 :dog:

4个月前 评论

非常感谢大家的回复 :+1:

4个月前 评论

不想背锅就用软删除

4个月前 评论

我现在都是用软删除的...为什么? 比如你有产品表...有订单表..订单可能关联的只是产品ID....那你把产品删除了,,不是关联不出来了吗?

4个月前 评论

created_at、updated_at、deleted_at这三个字段基本每个表都会有,软删除很有必要

4个月前 评论

刚注销了一个腾讯云账号, 有关联的资源,都需要按要求释放删除, 然后不能欠费, 最后才允许注销

3个月前 评论

和钱相关的,永远不要物理删除,要不然你会后悔的

3个月前 评论
michonnehsu

我刚开始的时候是硬删除,后来在表里添加了 status字段 并且在select的时候 判断status是正常的(即1)才显示
例子:SELECT * FROM TABLE WHERE status = 1
软删除: UPDATE TABLE SET status = 0

3个月前 评论

所有情况,都用软删除,就对了

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!