数据到底删还是不删
创始人
2024-07-25 05:21:43
0

笔者语

因为生活(钱)所迫,转行(做苹果配件相关做电子产品)已经快半年了,转行后,收入确实高了不少,生活也确实滋润了许多,不过我常常还念自己的程序员生涯,怀念当初对技术如饥似渴的狂热追求的日子,让人觉得无比充实;怀念当初只为解决一个功能、一个算法、一个bug甚至是帮别人解决一个问题而通宵达旦废寝忘食,让人觉得热血沸腾,也正是因为这个怀念,所以我一直保持潜伏于博客园,一直保持学习,忙里偷闲偶尔还会写几个小桌面工具,为手中IPhone写个应用程序,偶尔也参与和现在还在搞开发的朋友讨论一些技术问题。

正文

前几天一个朋友问我数据库的数据用delete误删了能恢复吗?因为他们公司维护一个运行已久的项目,在测试时将delete的where的参数写错了,使所以删除了一些重要的数据。因为备份文件过旧,日志文件破坏了,所以最终还是没有成功恢复。(顺便在此寻找能解决此问题的高手)

由此我不禁想问过期的数据为什么要删除呢?

假如要删除离职员工信息,那是不是说该员工曾经在公司的所以贡献和成绩都要一起抹掉呢?

再如公司要删除某种停产产品,那是不是说所有包含了该产品的订单都要一并删除呢?再级联下去,这些订单对应的所有客户是不是也该删除?这么一步步删下去,那公司的损失不言而喻。

员工不是被删除的,是被“解雇”的。

产品不是被删除的,是被“停产”的。

订单不是被删除的,是被“取消”的。

职位不是被删除的,是被“填补”的。

在上面这些例子中,我们的着眼点应该放在用户希望完成的任务上,而非发生在某个实体身上的技术动作。几乎在所有的情况下,需要考虑的实体总不止一个。

为了代替IsDeleted标志,我们可以用一个代表相关数据状态的字段:有效、停用、取消、弃置等等。用户可以借助这样一个状态字段回顾过去的数据,作为决策的依据。

删除数据除了破坏数据一致性,还有其它负面的后果。我们把所有数据都留在数据库里:“能不删除。就不删除。”。

 

原文链接:http://www.cnblogs.com/xhyang110/archive/2011/04/05/2006055.html

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...