我有一个定期更新的表格,我希望能够对其进行版本化,以便我可以随时回滚到以前的版本。我想在抽象级别执行此操作,这样我不会对数据本身进行版本控制(即版本控制是表的一部分),而是将事务日志存储在另一个表中。这样做的最佳方法是什么?
可能的解决方案:为 onInsert、onUpdate、onDelete 等添加一个触发器,并让它们在其他一些表上执行相关的插入,但看起来比必要的工作更多,因为 sqlite 已经有一个事务日志:如果我能以某种方式查询日志(并没有被删除)。
例如:
CREATE TABLE Contacts(
id INT PRIMARY KEY,
first VARCHAR,
middle VARCHAR,
last VARCHAR,
phone VARCHAR,
date TIMESTAMP
);
有了这张表,我希望能够回答这个问题:“某某在‘某天’之前有什么电话号码”或“某某曾经改变过他们的名字吗?”