数据到底删还是不删

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

笔者语

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

正文

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

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

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

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

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

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

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

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

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

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

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

 

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

 

责任编辑:艾婧 来源: 博客园
相关推荐

2017-08-23 09:24:19

灾备

2019-08-15 09:28:32

SQLNoSQLCPU

2019-08-14 14:54:19

MySQLPostgreSQL数据库

2015-04-21 09:20:40

SwfitObject—C

2021-03-19 07:40:22

缓存数据库日志

2021-04-28 16:47:20

微信单删好友移动应用

2018-09-26 14:17:00

编程语言JavaPython

2011-09-05 10:30:51

重构代码库业务模型

2017-08-09 08:43:02

公有云趋势声势

2019-10-08 10:28:49

中台IT架构

2015-11-02 14:40:00

数据挖掘定位

2013-09-23 15:49:05

2018-10-09 15:26:19

JavaPython语言

2024-03-28 13:13:00

Htmx前端开发框架

2021-01-13 05:23:27

缓存数据库高并发

2018-03-28 14:17:37

区块链手机系统

2014-11-17 10:03:23

OpenStack

2021-03-15 09:00:00

开发JavaKotlin

2017-06-30 09:29:00

Hadoop数据仓库

2010-06-13 09:31:45

WindowsLinux服务器操作系统
点赞
收藏

51CTO技术栈公众号