【问题标题】:Data history tracking best practice数据历史跟踪最佳实践
【发布时间】:2011-10-03 12:19:57
【问题描述】:

我们需要在某个时间段内跟踪某个表上的数据修改。我们需要一些关于如何完成这项任务的建议。我们有两条街道要遵循。 1)创建一个表,记录如下:userid、修改日期、表名、fieldname、fieldtype、fieldvalue。这样,我们就会用触发器进行跟踪。

2) 在我们需要跟踪历史记录的所有表上添加一个状态字段,称为状态。该字段将具有以下值:I = 插入 - D = 删除 - M = 已修改,具有相对日期和修改。这样我们总能知道最新的有效行和之前所有的数据修改 3) 它在你的脑海中  你有什么建议?

【问题讨论】:

    标签: database audit-tables


    【解决方案1】:

    我已经在 PostgreSQL 上使用单独的“历史”模式和触发器多次执行此操作。

    “历史”模式中的表与真实表相同,但添加了history_id PK 和事件时间戳。 “历史”模式中的表没有任何约束。如果您还需要跟踪删除,您还需要创建操作字段。

    在 postgreSQL 中,您可以使用 CREATE 语句轻松创建此类表:

    CREATE TABLE history.tbl AS
      (history_id BIGSERIAL PRIMARY KEY, 
      event_time TIMESTAMP DEFAULT NOW(), 
      action CHAR(1), 
      LIKE public.tpl);
    

    在此之后,您应该创建触发器,该触发器将在插入、更新、删除时插入到历史表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多