現在、CouchDBを使用してwiki風のアプリケーションに取り組んでおり、ドキュメントのバージョン管理スキームを実装しようとしています。私がそれを見る方法には、これを行う2つの方法があります:
- 各バージョンを個別のドキュメントとして保存する
- 古いバージョンを添付ファイルとして単一のドキュメントに保存します。
今、私は#1が働いている形を持っています。ユーザーがドキュメントを編集して保存すると、バックエンドはまず前のリビジョンを新しいドキュメントにコピーしてから、新しいバージョンを保存します。各ドキュメントには、各バージョンのデータ(古いバージョンのドキュメント_id、タイムスタンプ、エディターなど)を含む「履歴」配列があります。
この履歴配列は、頻繁に更新されるドキュメントではかなり長くなる可能性があるため、通常の読み取り中にドキュメントを取得するビュー(および履歴を取得する別のビュー)があります。
私の質問はこれです:私は現在のアプローチに不安を感じており、「アタッチメント」メソッドへの変更を考えています。確信はないけど。私はCouchDBをよく知っている人(私はこれに数週間しかいませんでした-そしてこれはCouchDB ...とNoSQLを使用した最初のプロジェクトです)がそれぞれの長所と短所を教えてくれることを願っていますアプローチ。または、おそらく私が見落としている他のバージョン管理スキームがありますか?