版本控制数据库的内容
我正在开发一个涉及用户可编辑内容的Web项目,并且我希望能够对存在于数据库中的实际内容进行版本跟踪。基本上,我想实现Wiki样式的更改历史记录。 做一些背景研究,我看到了很多有关如何对数据库模式进行版本控制的文档(实际上已经控制了我的数据库),但是关于模式跟踪数据库内容变化的任何现有策略都至少在模式版本控制方面大失所望。在我的搜索中。 我可以想到几种实现我自己的变更跟踪的方法,但它们似乎都非常粗糙: 保存每次更改的整个行,并使用主键将行与源ID相关联(这是我目前最倾向于的方法,这是最简单的方法)。但是,许多小的更改可能会导致很多桌子膨胀。 保存每个更改之前/之后/用户/时间戳记,并使用列名称将更改关联回相关列。 用每列的表保存之前/之后/用户/时间戳(会导致表过多)。 使用列将每个更改的差异/用户/时间戳记保存起来(这意味着您必须遍历整个干预更改历史记录才能返回到特定日期)。 最好的方法是什么?自己动手似乎是在重塑别人的(更好)代码库。 PostgreSQL的加分点。