摘要:什么是软删除软删除又叫逻辑删除,标记删除,与我们常说的删除不同,并不是真的从数据库中将这条记录去除,而是会设置一个字段,比如来标记删除状态。与硬删除的比较虽然软删除比较好,它能保证数据的完整性,但并不表示我们任何时候都要使用软删除。
上次在处理项目中的一个异常的时候,定位到异常的位置是删除时候抛出的异常,然后最后的解决办法是使用@NotFound注解实现的。然后老师说这是一种软删除。当时只是大概知道什么意思,但是并不清楚到底是什么东西。今天简单学习了下。
什么是软删除软删除又叫逻辑删除,标记删除,与我们常说的删除不同,并不是真的从数据库中将这条记录去除,而是会设置一个字段,比如:isDelete来标记删除状态。
那就会产生下一个问题,为什么要有软删除呢?为什么不直接删除呢?
为什么会有软删除在现实情况中,很多时候我们说的删除并不是真的是删除的本意,因为站在用户的角度来看,并不是一种删除的状态:
订单不是被删除的,是被“取消”的。
员工不是被删除的,是被“解雇”的(也可能是退休了)。
职位不是被删除的,是被“填补”的(或者招聘申请被撤回)。
所以这些时候,我们并不能真的把记录删除,所以软删除就出现了。
当然,我们更希望用一下代表状态的词来代替isDelete,就比如我们项目中已经使用的:有效、停用、弃用等等。
与硬删除的比较虽然软删除比较好,它能保证数据的完整性,但并不表示我们任何时候都要使用软删除。当我们确定某些数据真的不需要的时候,硬删除就成了必须。比如验证码。这种数据删除后就没有必要保存了。
总结项目中的问题,本来的逻辑是清空原始数据,然后重新计算,再存入数据库中,所以这时使用了删除,数据库中就不应该存在那些数据,所以确实不应该使用软删除,还是应该使用常说的硬删除。
友情链接:http://xingaiming.com/2015/12/db_design_dont_delete_data/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76776.html
摘要:简单来说就是引用和引用队列关联起来引用的构造函数传入队列,然后引用被回收的时候会被添加到队列中,然后使用方法可以返回引用。 引语: 我们知道java相比C,C++中没有令人头痛的指针,但是却有和指针作用相似的引用对象(Reference),就是常说的引用,比如,Object obj = new Object();这个obj就是引用,它指向的是真正的对象Object的地址,不过今...
摘要:所以我十分建议大家去读一下图解和权威指南。图解这本书对互联网基盘协议进行了全面系统的介绍。通过书中大量生动形象的通信图例,我们能够更全面地理解通信过程中客户端与服务器之间的交互情况。返回结果的状态在通讯中,通过转态码,告知客户端的请求状态。 前言 作为一个前端,如果能够深刻理解 HTTP 通信,能够让我们在日常开发工作中快速定位问题。所以我十分建议大家去读一下《图解HTTP》和《HTT...
阅读 3166·2021-11-23 09:51
阅读 1503·2021-11-22 09:34
阅读 2808·2021-10-27 14:15
阅读 2228·2021-10-12 10:17
阅读 1866·2021-10-12 10:12
阅读 894·2021-09-27 14:00
阅读 1949·2021-09-22 15:19
阅读 978·2019-08-30 10:51