保存并还原数据库记录上的修订历史记录

时间:2012-05-27 09:20:21

标签: mongodb diff wiki database

我正在计划构建网站,允许用户根据其状态添加,编辑和删除记录,而不是与Stack Overflow不同。任何用户都应该能够像wiki一样编辑记录,但为了避免破坏,必须保存所有修订版本,以便我们可以在需要时恢复。

我想有几种方法可以做到这一点。维基百科和Stack Overflow等网站如何管理这类数据?

PS。我使用MongoDB进行数据持久化。

1 个答案:

答案 0 :(得分:3)

您有两个正交的选择。

存储

  1. 将历史记录保存在同一文档中,字段名称为versions(或其他)。

  2. 将更改保存到单独的集合中,以保持原始文档的清洁。

  3. 格式

    1. 逐字保存原始版本。这有助于回滚(只需获得上一版本和覆盖当前版本)。
    2. 只存储已修改的字段,这样可以节省一些空间(添加/删除字段时要小心)。

      2.1。为了进一步节省空间,您可以存储字符串值的差异。