• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tonghuashuai
V2EX  ›  程序员

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

  •  
  •   tonghuashuai ·
    tonghs · Aug 26, 2015 · 2898 views
    This topic created in 3991 days ago, the information mentioned may be changed or developed.
    比如用户信息修改的时候,保留每一次修改的历史记录,这个有没有什么常用的实现方式?
    如果用户信息分散到几个不同的表中又该怎么弄呢?

    求一些好的思路或推荐一些学习资料。
    6 replies    2015-08-26 14:20:08 +08:00
    realpg
        1
    realpg  
       Aug 26, 2015
    是要查看用还是要回溯用?

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

    如果单纯审计,可以直接扩展一下 oplog ,每一步都记录 XXX 在 XXX 时间把 XXX 从 XXX 修改成了 XXX
    choury
        2
    choury  
       Aug 26, 2015 via Android
    用 mysql 的 binlog ,我们的游戏回档都是这么搞的
    tonghuashuai
        3
    tonghuashuai  
    OP
       Aug 26, 2015
    @choury 如果实现方式不在数据库级别呢?在应用级别有没有好的方式?
    manhere
        4
    manhere  
       Aug 26, 2015
    最简单的给信息加个版本字段
    feiyuanqiu
        5
    feiyuanqiu  
       Aug 26, 2015
    方法很简单的,只要你数据库容量足够,设置一个字段用来表示数据是否在用,编辑的时候直接插入新数据,老数据更新一下是否在用字段就行
    前提是数据量不大,不然表增长很快的,可以定期把不用的老数据移到单独的表或者分区
    tjxjj
        6
    tjxjj  
       Aug 26, 2015
    要解决这个问题很简单,但是不谈数据量,场景,就无法提供解决方案
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   908 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:34 · PVG 05:34 · LAX 14:34 · JFK 17:34
    ♥ Do have faith in what you're doing.