对于数据删除一般来说有很多采用数据库表增加一个delflag 来表是否删除,然而这样操作无疑会有弊端,那就是每次查找的话都得在条件中使用delfllag ,这样使得开发起来要兼顾这一方面,而且数据量大的话无疑会降低数据查询的效率,
还有一种设计模式就是 另外新建一个表 用来存储被删除的信息,比如我们可以建立一个触发器 或者是写一个存储过程,但是这样,这个还可以设计成一个审计日志的表结构,这样的话可对系统操作记录可以查出日志,有人误删数据可以责任到人,但是听说这样也有弊端,如果删除数据会有大量的数据库碎片 ,不知是否还有其他的弊端呢?不知有哪位大神介绍下载什么情况下使用哪种设计模式或者是有更好的设计方案?
还有一种设计模式就是 另外新建一个表 用来存储被删除的信息,比如我们可以建立一个触发器 或者是写一个存储过程,但是这样,这个还可以设计成一个审计日志的表结构,这样的话可对系统操作记录可以查出日志,有人误删数据可以责任到人,但是听说这样也有弊端,如果删除数据会有大量的数据库碎片 ,不知是否还有其他的弊端呢?不知有哪位大神介绍下载什么情况下使用哪种设计模式或者是有更好的设计方案?
解决方案 »
- oracle数据库导入问题
- db2数据库安装
- vb 调用 oracle 使用 order 函数后,删除某一记录显示无法定位
- 如何把有重复的数据只插入一次到另一张表中
- pro*c 连接问题
- win7下安装了oracle11g,oracle的几个服务程序都代表什么?谁能详细解答下
- oracle9i 启动时默认使用哪个参数文件呢?
- oracle数据 如何倒入到 excel表格之中 再线等...
- 紧急求救,在C++BUILDER 中访问clob字段出现 EAccess Violation 错误!
- 请问高手,如何将ACCESS中的“长二进制数据”字段的内容导入ORACLE的表中?
- ORACLE有没有根本解决高水位的方法
- 求教,我是萌新,老师给了一个程序包的模板,但是有的地方我没懂
应用和需求不同,删除的方式也不同。常见的删除策略有:
1.分区删除
2.insert历史表,truncate原表
3.作某种特殊操作时,触发删除
4.其他删除方式
........等等!