防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”
2010-07-19 11:20 通用C#系统架构 阅读(8895) 评论(124) 编辑 收藏 举报
用 DeleteMark 的出发点:
1:虽然在界面上有删除提示,但是客户错误的删除了一笔数据后,想恢复被删除的数据是特别困难的,有人曾比喻,若输入数据的工作量,用1来比喻,那恢复被误删除的数据的工作量,很可能是100,所以就算界面上有删除提示,客户也确认删除了,但是还能有把数据挽救的余地才是保险的做法。
2:程序写太好了,客户用了好几年,程序的速度也飞快,数据库也很精简,很难收到维护费,曾经有一个大客户,软件用了接近10年都好好的,客户从来不支付维护费,你也没办法上门收维护费,因为程序写得太精悍了,这10年里,不知道损失了多少钱,本来可以收蛮多维护费的事情,就被搞砸了,若每天都产生日志文件,被删除的数据都在数据库里,这10年下来,数据库也会变得很庞大,软件运行速度自然就下来了,客户也愿意支付维护费,数据都保留着,也不是坏事,防止万一出现问题,都能有恢复过来的保障。
设置了 DeleteMark 标志后,程序的工作量主要体现在:
A: 数据库结构设计需要调整,所有的类都需要重新生成(用代码生成器生成还算好点儿,做到设计与实际是同步的很困难)。
B: 所有的选择数据的方法,都需要加上 DeleteMark = 0 的判断条件。
C: 所有的业务逻辑上,都需要加上 DeleteMark = 0 的判断条件。
D: 所有的删除方法,都需要修改,以前是直接进行删除操作,现在是伪删除,只是打上删除标志。
由于程序的功能点也相对多,平时管理上、工作上也有很多事情需要处理,所以这个增加 DeleteMark 标志足足耗费了1周时间,其实很多事情,嘴巴上说说都很简单,但是真正需要去做,只是那么一点改进,往往是需要耗费很多精力、时间,才能做好,才能上升一个台阶。