我的整个数据库偶尔会有错误的条目,但不是直接更改数据,而是希望能够对修改进行修改。对SQL数据库中的数据进行修订控制的最佳做法
这些更改很少发生。
理想情况下是这样的: -
(original table fields) | revision_version | origin | user | timestamp
所以说,我有一个表叫帖子下面的模式: -
title | description | timestamp | author
一个额外的表称为posts_revisions将被创建因此: -
title | description | timestamp | author | revision_version | origin | user | timestamp
- 原点是变化的来源,无论是机器人,用户生成还是你有什么。
正如你可以想象这是对现有数据库的一个相当大的改变,我目前关心的是检查每个查询的_revisions表的性能。这是这种事情的最佳做法吗?
不要害怕在两个表中复制原点,用户和时间戳。您可能想要删除后台作业中的修订。删除所有帖子不存在的修订。理论上,你甚至可以懒惰地创建日志挖掘的修订。更大的交易和更低的摊销成本。 – 2012-08-02 13:00:06