如果我有table1,table2,table3..table50,它存储有关产品的不同信息
如何以一种方式跟踪增量变化的有效方法是,如果我想回过头来了解特定产品在给定日期中的表现,那将非常快速和准确。 我希望能够以非常快速的方式跟踪变化并减少过多的冗余。
答案 0 :(得分:0)
1.如果您使用的是Oracle 11g,那么Oracle闪回技术就可以实现这一功能。 http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm#BJFGJHCJ。
2.在旧版本中,您可以使用DBMS_WM程序包并为所需的表启用版本控制。但是,您可以为其启用版本控制的表格类型存在某些限制。 http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96628/long_ref.htm#80312
3.到目前为止,我见过的其他实现都有自己的DBMS_WM程序版本。基本上,有一个类似的结构。
SQL> desc scott_emp;
Name Null? Type
----------------------------------------- -------- -------------
EMPNO NOT NULL NUMBER(4)
ENAME NOT NULL VARCHAR2(10)
JOB NOT NULL VARCHAR2(9)
MGR NUMBER(4)
HIREDATE NOT NULL DATE
SAL NOT NULL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NOT NULL NUMBER(2)
EFF_DATE DATE
END_DATE DATE
最后两列用于查看数据库中记录“逻辑上有效”的时间段。使用触发器
完成实现如果您只想跟踪某些列的更改,最后一种方法可能会解决您的目的(例如,假设只有部门和工资变化都是您关注的)。
请不要选择这样的型号。 (Do not
将每个列更改存储为单独的行)
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1769392200346820632