【数据库】软删除和硬删除

在开发中,删除数据是必须要小心的,比如执行以下代码,那么表`student`中id等于2的记录就彻底删除了,这就叫硬删除。硬删除是物理删除,直接将该记录从数据库中删除。

delete from `student` where id = 2;

硬删除恢复数据是比较麻烦的,这个时候就出现了软删除。

软删除,又叫逻辑删除标记删除,我们并不是真的从记录中删除了这个数据,而是通过某个字段标记下这条记录的删除状态,isDelete。比如当isDelete字段为0的时候是删除状态,当isDelete字段为1的时候是未删除状态。由这个字段判断记录的状态。

比如筛选出删除状态的记录:

select * from student where isDelete = 0;

但是问题又出现了,随着业务数据的越来越多,有些数据是真的需要硬删除的。这个时候isDelete可以再赋予一个值,当isDelete=2的时候,就硬删除。或者在表中再添加一个字段isValid,isValid=0的话,那就真的删除。

delete from `student` where isValid = 0;

这样数据表的数据就不会产生大量冗余。

OK,这就是软删除和硬删除。感谢阅读!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库删除是指在删除数据时,并不直接从数据库中永久删除该数据,而是通过标记或修改数据的状态来表示数据已被删除删除通常用于保留数据的历史记录或提供恢复已删除数据的功能。 删除的实现方式可以有多种: 1. 添加一个额外的列(例如 `deleted_at`):在表中添加一个用于记录删除时间的列。当数据被删除时,将该列标记为相应的时间戳或日期值。在查询数据时,可以通过检查该列来过滤已被删除的数据。 2. 使用状态字段:在数据表中添加一个用于表示数据状态的字段(例如 `is_deleted`)。当数据被删除时,将该字段标记为已删除的状态值(例如 1 或 true)。在查询数据时,可以根据该字段的值来过滤已被删除的数据。 无论使用哪种方式,删除都能够提供以下好处: - 数据保留:删除允许保留已删除数据的备份或历史记录,这对于审计、恢复或回溯操作非常有用。 - 数据完整性:删除避免了直接从数据库中永久删除数据,从而可以保持数据的完整性和关联性。 - 数据恢复:通过删除,可以更轻松地恢复或还原已删除的数据,而无需从备份中恢复。 需要注意的是,删除并不适用于所有情况。在某些情况下,完全删除数据可能更合适,例如对于敏感信息或不可恢复的数据。删除的使用应基于具体需求和业务逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值