CouchDB 和文档版本控制

Jam*_*dam 12 database-design couchdb

我目前正在使用 CouchDB 开发一个 wiki-esque 应用程序,并试图实现一个文档版本控制方案。在我看来,有两种方法可以做到这一点:

  1. 将每个版本存储为单独的文档
  2. 将旧版本存储为单个文档的附件。

现在,我有一种#1 的工作形式。当用户编辑文档并保存时,后端首先将之前的修订复制到新文档中,然后保存新版本。每个文档都有一个 'history' 数组,其中包含每个版本的数据(旧版本的文档 _id、时间戳、编辑器等)。

由于这个历史数组对于经常更新的文档来说可能会变得很长,我有一个视图可以在正常读取期间获取一个没有历史记录的文档(以及另一个用于获取历史记录的视图)。

我的问题是:我对我目前的方法感到不安,并一直在考虑改用“依恋”方法。但我不确定。我希望有人比我更了解 CouchDB(我只在这工作了几个星期——这是我第一个使用 CouchDB 和 NoSQL 的项目)可以告诉我每个项目的优缺点方法。或者是否还有其他一些我忽略的版本控制方案?

小智 0

没有任何 CouchDB 知识。存储每个版本虽然可能与其前身仅略有不同,但会浪费存储空间。我建议仅存储更改。

您可能想查看此处或搜索数据版本控制。