Oracle DB表 - 实现历史记录,审计和版本控制

时间:2013-05-27 13:05:55

标签: database oracle versioning history audit

我有三个历史表,如下所示,对应的主表和一个审计表。该表与表中的主键ID相互关联。

com
-----
id  - primary key
description
history_id

db_comm
--------
id - refers  id in com 
query 
type 
flag 
history_id


comm_frm
-------
id - refers  id in com
scope
status
seq
history_id

audit
------
history_id
version_id
created_dt
replaced_dt
ended_dt
userId
ipaddr
action
status

我为这三个表创建了历史表(_history)。对于这三个表中任何一个表中的任何更改(插入/更新/删除)

  • 我是否需要复制其他表中的行,即使没有 改变那张桌子。
例如,

如果用户在comm表中修改了列查询。那么我将在这些历史表中有以下条目。如果你在这里看到com表只是改变了,但是我们还需要在db_comm中创建一个新条目。

     com_history

        id          description    history_id
         1           loaded data      1
         1           loaded           3

     db_comm_history 

         id    scope sequence       history_id
         1      G      1               2
         1      G      1               4

       audit

history_id version_id created_dt replaced_dt ended_dt  userId ipaddr  action  status
   1         1       sysdate      sysdate    sysdate     xxx 192.1   Update   INACTIVE
   2         2       SYSDATE                             XXX 192.1   iNSERT    ACTIVE 
   3         1       sysdate      sysdate    sysdate     xxx 192.1   Update   INACTIVE
   4         2       SYSDATE                             XXX 192.1   iNSERT    ACTIVE
  • 如何在所有历史记录表中维护相同版本(全局版本),以便更改其中一个表格。

0 个答案:

没有答案