防用户误删除,耗费一周时间把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


相关文章
|
消息中间件 程序员 API
Flink中时间和窗口
Flink中时间和窗口
410 0
|
应用服务中间件 nginx
Nginx 四层代理配置
Nginx 四层代理配置
219 0
基于DSP的数字滤波器设计
基于DSP的数字滤波器设计
424 4
|
NoSQL 关系型数据库 MySQL
高可用数据库架构:互备(Multi-Master)技术详解
本文介绍了分布式系统中的互备(Multi-Master)机制,特别是在高可用数据库系统中的应用。互备机制超越了传统的主从复制,允许每个Master节点同时进行读写操作并互相同步数据,以提高可用性和负载均衡。文章探讨了主从复制与互备模式的区别,以及互备模式的数据同步和冲突解决策略。还以MySQL的双主复制和MongoDB的副本集为例,展示了MM模式在数据库高可用性中的实践。最后,强调了互备在未来分布式系统中的重要性。
360 7
|
存储 NoSQL 分布式数据库
【HBase入门与实战】一文搞懂HBase!
该文档介绍了HBase,一种高吞吐量的NoSQL数据库,适合处理大规模数据。HBase具备快速读写、列式存储和天然支持集群部署的特点,常用于高并发场景。NoSQL与关系型数据库的主要区别在于数据模型、查询语言和可伸缩性。HBase的物理架构包括Client、Zookeeper、HMaster和RegionServer,其中RegionServer管理数据存储。HBase的读写流程利用MemStore和Bloom Filter提高效率。此外,文档还提到了HBase的应用,如时间序列数据、消息传递和内容服务。
3012 1
【HBase入门与实战】一文搞懂HBase!
|
存储 算法 定位技术
探索最短路径问题:寻找优化路线的算法解决方案
在现实生活中,我们常常面临需要找到最短路径的情况,如地图导航、网络路由等。最短路径问题是一个关键的优化问题,涉及在图中寻找两个顶点之间的最短路径,以便在有限时间或资源内找到最快的方式。本文将深入探讨最短路径问题的定义、经典算法以及实际应用,为您揭示一种重要的算法解决方案。
670 0
|
前端开发 API
前端如何写后台管理系统登录验证详细流程和代码
后台管理系统是公司必备的,从前些年由于技术人员的稀有,导致后台系统非常昂贵,近些年IT行业的快速发展,使得一些中小型公司开始自己写后台,自己维护,从而获取利益的最大化。
550 0
前端如何写后台管理系统登录验证详细流程和代码
|
网络协议 安全 编译器
嵌入式代码经常产生bug的五大原因
嵌入式代码经常产生bug的五大原因
175 0
|
开发框架 前端开发 JavaScript
BSC链上进行智能合约开发部署规则详情
BSC(Binance Smart Chain)是一个基于区块链的智能合约平台,类似于以太坊。它提供了一个开发者友好的环境,可以用于创建和部署智能合约。如果你有一些编程经验,并且熟悉区块链和智能合约的基本概念,你可以按照以下步骤在BSC链上进行智能合约开发:
|
存储 缓存 算法
深入理解内存管理:优化你的C++代码
深入理解内存管理:优化你的C++代码