数据库建模:查找给定日期和时间中数据的外观

|| 如果我有table1,table2,table3..table50存储有关产品的不同信息 跟踪增量变化的有效方法是,如果我想回过头来了解某个特定产品在给定日期中的外观,它将非常快速且准确。 我想以一种可以快速检索它的方式跟踪更改,并且还减少了过多的冗余。     
已邀请:
        1.如果您使用的是Oracle 11g,则可以使用Oracle Flashback技术进行此操作。 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     

要回复问题请先登录注册