web 中信息的修改历史该怎么记录?

2015-08-26 12:31:31 +08:00
 tonghuashuai
比如用户信息修改的时候,保留每一次修改的历史记录,这个有没有什么常用的实现方式?
如果用户信息分散到几个不同的表中又该怎么弄呢?

求一些好的思路或推荐一些学习资料。
2328 次点击
所在节点    程序员
6 条回复
realpg
2015-08-26 12:36:18 +08:00
是要查看用还是要回溯用?

以前做过一个传销的程序……哦对 叫直销
要求各种回溯时间点能力……
几个朋友设计出一个 DIY 的长期事务系统,对每个数据库的写操作都保留了反操作 SQL ,可以各种复制库后用反操作 SQL 记录回溯……

如果单纯审计,可以直接扩展一下 oplog ,每一步都记录 XXX 在 XXX 时间把 XXX 从 XXX 修改成了 XXX
choury
2015-08-26 12:42:10 +08:00
用 mysql 的 binlog ,我们的游戏回档都是这么搞的
tonghuashuai
2015-08-26 14:03:54 +08:00
@choury 如果实现方式不在数据库级别呢?在应用级别有没有好的方式?
manhere
2015-08-26 14:06:04 +08:00
最简单的给信息加个版本字段
feiyuanqiu
2015-08-26 14:11:46 +08:00
方法很简单的,只要你数据库容量足够,设置一个字段用来表示数据是否在用,编辑的时候直接插入新数据,老数据更新一下是否在用字段就行
前提是数据量不大,不然表增长很快的,可以定期把不用的老数据移到单独的表或者分区
tjxjj
2015-08-26 14:20:08 +08:00
要解决这个问题很简单,但是不谈数据量,场景,就无法提供解决方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/216087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX