バージョン管理を実装するための実行可能な戦略は次のとおりです (サンプル ドキュメント タイプとして「例」を使用)。
type フィールドが example_original という名前の元のドキュメントを 1 つ用意します。
ドキュメントに対するその後の変更はすべて、タイプ example_change と example_original ドキュメントの ID をキーとして持ちます。変更にはタイムスタンプも含まれます。
すべての example_change が「適用」された example_original の結果であるタイプ example_current の 1 つのドキュメントを保持します。新しい example_change ドキュメントは、このドキュメントに自動的に適用されます。
特定のバージョンを見つけるには、example_original doc を取得し、必要な変更を適用します (ほとんどの場合、特定のタイムスタンプまでですが、いくつかの変更を行うこともできます)。
私のユースケースには、オリジナルへの限られた数の変更が含まれることに言及する必要があります。ほとんどの更新は、新しいオリジナル ドキュメントで構成されます。これは私の現在のユースケースですが、多くの変更が関係する場合に生じる問題にも興味があります。
このアプローチには、どのような長所と短所がありますか?