防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”

简介:

2010-07-19 11:20 by MVP-通用权限管理, 4294 visits, 收藏编辑

 

用 DeleteMark 的出发点:

1:虽然在界面上有删除提示,但是客户错误的删除了一笔数据后,想恢复被删除的数据是特别困难的,有人曾比喻,若输入数据的工作量,用1来比喻,那恢复被误删除的数据的工作量,很可能是100,所以就算界面上有删除提示,客户也确认删除了,但是还能有把数据挽救的余地才是保险的做法。

 

2:程序写太好了,客户用了好几年,程序的速度也飞快,数据库也很精简,很难收到维护费,曾经有一个大客户,软件用了接近10年都好好的,客户从来不支付维护费,你也没办法上门收维护费,因为程序写得太精悍了,这10年里,不知道损失了多少钱,本来可以收蛮多维护费的事情,就被搞砸了,若每天都产生日志文件,被删除的数据都在数据库里,这10年下来,数据库也会变得很庞大,软件运行速度自然就下来了,客户也愿意支付维护费,数据都保留着,也不是坏事,防止万一出现问题,都能有恢复过来的保障。

 

 

 

设置了 DeleteMark 标志后,程序的工作量主要体现在:

A: 数据库结构设计需要调整,所有的类都需要重新生成(用代码生成器生成还算好点儿,做到设计实际是同步的很困难)。

B: 所有的选择数据的方法,都需要加上 DeleteMark = 0 的判断条件。

C: 所有的业务逻辑上,都需要加上  DeleteMark = 0 的判断条件。

D: 所有的删除方法,都需要修改,以前是直接进行删除操作,现在是伪删除,只是打上删除标志。

 

由于程序的功能点也相对多,平时管理上、工作上也有很多事情需要处理,所以这个增加  DeleteMark 标志足足耗费了1周时间,其实很多事情,嘴巴上说说都很简单,但是真正需要去做,只是那么一点改进,往往是需要耗费很多精力、时间,才能做好,才能上升一个台阶。

 

 

本文转自jirigala_bao 51CTO博客,原文链接:http://blog.51cto.com/jirigala/806834


相关文章
|
6月前
|
SQL 关系型数据库 数据库
记一次程序 Bug 导致数据删除的恢复过程
使用RDS、DMS进行数据恢复实践
950 0
删除一段时间内的记录,关键在于删除时筛选条件确定删除范围
删除一段时间内的记录,关键在于删除时筛选条件确定删除范围
67 0
|
NoSQL Redis 开发者
删除策略-定期删除|学习笔记
快速学习删除策略-定期删除
100 0
删除策略-定期删除|学习笔记
|
网络协议 Windows
【错误集】不定时更新
文章目录 前言 一、内容 二、服务(配置文件) 2.1 DNS服务无效(文件无权
128 0
【错误集】不定时更新
|
存储 SQL Oracle
回到过去,找回遗失的珍宝 - TiDB 的历史读功能
数据作为业务的核心,关系着整个业务的生死,所以对于数据库来说,数据的安全性是放在首位的,从宏观角度来看,安全性不仅仅在于的数据库本身足够稳定不会主动的丢失数据,有的时候更是对业务本身甚至人为失误造成损失是否有足够且便捷的应对方案,例如在游戏行业中经常遇到的反作弊(作弊玩家回档)问题,对于金融业务的审计需求等等,如果在数据库层面上提供相关机制,会让业务开发的工作量和复杂度减少很多。 传统的方案会定期备份数据,几天一次,甚至一天一次,把数据全量备份。当意外发生的时候,可以用来还原。但是用备份数据还原,代价还是非常大的,所有备份时间点后的数据都会丢失,你绝对不希望走到这一步。另外全量备份带来的存储
265 0
|
SQL 数据库
数据库页已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。
错误提示: 消息 829,级别 21,状态 1,第 1 行 数据库 ID 15,页 (1:21826) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。 引起原因: RestorePending一般是在进行页恢复的过程中出现的,就是在进行了restore操作之后但还没有进行recovery操作之前页的状态。
2413 0