文档章节

业务系统的修改记录(一)

小楼听雨中
 小楼听雨中
发布于 2014/04/27 21:02
字数 271
阅读 29
收藏 0

一、背景

     业务系统经常需要查看用户的操作记录,英文的翻译,大致是 entity data audit.

 

二、实现方案

      大体来说,有3个层面的方法:

(1)应用层,例如采用版本记录的方式实现,好处是可移植。

(2)ORM层,好处是利用hibernate的强大功能,坏处是,换了orm,不可重用

(3)数据库层,采用trigger实现,太古老了,目前很少使用

 

三、应用层修改记录实现方式讨论

1、版本方式

     (1)每一次update,生成一个新的版本,查看修改记录,直接diff两个版本

     (2)触发时刻,轻松简洁,但是展示变动的时候,得diff

     (3)时间久了,版本过多,数据量激增

 

2、记录变动字段

    (1)每一次update,只记录更新的字段、旧值、新值

    (2)触发时刻,得保证能够确定出准确的更新字段和新旧值

    (3)数据不冗余,相对简洁,难点在第二点(递归diff)


© 著作权归作者所有

小楼听雨中
粉丝 61
博文 201
码字总数 129524
作品 0
海淀
程序员
私信 提问
企业应用架构模式学习(十六):离线并发模式

乐观离线锁(optimistic offline lock ) 通过冲突监测和事务回滚来防止并发业务事务中的冲突。 一个业务事务的执行常常要跨越一系列的系统事务。而一旦超出单个系统事务的范围,就不能仅依靠...

大风起兮
2013/06/06
415
0
《LVS管理系统》功能开发二

这周主要做了监控的功能以及对LB发布的优化(支持串并行执行)。之所以做了这两个比较实用的功能点,主要是基于以下的考虑: 1.支持串并行执行。之前的重载的执行方式统一都是并行执行的,即...

10730
2014/09/29
0
0
ETL增量抽取方法讲解

一、.ETL体系结构 数据库--->抽取---> 转换--->加载--->目的数据源 二、ETL抽取方案 1).全量抽取 全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取...

wdvceafvcsrgfv的博客
2017/12/12
0
0
web工作流管理系统开发之二十一 巧用流程轨迹表主键ID

在工作流系统中,业务流程按流程引擎定义的模型规则,定义成流程的一个一个节点。当流程实例运行时,流转到流程的各个节点,通过执行动作之类的操作提交关联的业务表单,导向流程的下一个节点...

长平狐
2012/10/11
93
0
Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录

在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录。我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加...

walb呀
2017/12/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kubernetes pod exec接口调用

正文 一般生产环境上由于网络安全策略,大多数端口是不能为集群外部访问的。多个集群之间一般都是通过k8s的ApiServer组件提供的接口通信,如https://192.168.1.101:6443。所以在做云平台时,...

码农实战
47分钟前
6
0
3_数组

3_数组

行者终成事
今天
8
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
12
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部