我在这里看到了几个跟踪数据库历史记录的问题,但似乎找不到符合我们情况的问题。我们需要跟踪几个表的历史记录,其中一些是多对多链接表。例如,我们有这个架构:
EntityA
id
name
EntityB
id
name
ABLink
A_id
B_id
因此,跟踪对EntityA或EntityB的更改似乎非常简单。我们可以保留一个包含相同列的日志表以及日期戳和用户。但是链接怎么样?我们如何维护对给定版本的数据有效的链接集?我们需要能够重新创建显示时间顺序变化的数据历史记录。因此,如果添加或删除链接,我们会指出。等
答案 0 :(得分:1)
创建一个ABLink日志表(如果需要,可以使用它自己的主键),它具有指向EntityA& A的外键链接。 EntityB日志表。您可以在日志表中添加change_type列,以指示日志条目是否为插入/更新/删除 - 当然,多对多日志表不应包含任何更新 change_type条目:
ABLink_Log EntityA_Log EntityB_Log
---------- ----------- -----------
id id id
A_Log_id name name
B_Log_id change_type change_type
change_type date_stamp date_stamp
date_stamp user_id user_id
user_id