Best Practice für die Versionierung von CouchDB-Dokumenten

8

Nach meiner Frage hier I Ich möchte Ideen für einen generischen Ansatz zur Versionskontrolle von Dokumenten in CouchDB vorschlagen. Während ich mir vorstelle, dass es vielleicht keinen kanonischen Ansatz gibt, hatte ich die folgende Idee und suche nach Feedback.

Ich möchte lesbare Dokument-IDs so gut wie möglich beibehalten, damit ein Dokument, das in document1 existiert, ein Zeiger Dokument für alle vorhandenen Versionen auf dem System enthält . Die eigentlichen Revision Dokumente wären etwas wie document1/308ef032a3801a wo   308ef032a3801a ist eine Zufallszahl oder ein Hash.

Beispiel

Das Zeigerdokument

%Vor%

Das Versionsdokument

%Vor%     
Jacob Groundwater 25.11.2011, 22:22
quelle

2 Antworten

5

Es ist typischer, ältere Versionen Ihres Dokuments in Ihrer aktuellen Revision zu behalten (entweder als JSON oder oft als Anhang). Für den JSON-Fall;

%Vor%

Offensichtlich werden dadurch die Dinge etwas durcheinander gebracht, weshalb es oft einfacher ist, die vollständige alte Version des Dokuments in einen Anhang zu schieben. Dieses Muster ist häufig genug, dass CouchDB mit einer Bibliothek, jquery.couch.js , ausgeliefert wird, die es implementiert (in der Funktion saveDoc(doc) ).

    
Robert Newson 26.11.2011, 17:47
quelle
2

Hier finden Sie eine Diskussion über Ansätze zur Versionierung von Dokumenten:

Ссылка

Der eine vorgeschlagene Ansatz besteht darin, ältere Versionen als Anhänge an das aktuelle Dokument anzuhängen.  Wie das Dokument erwähnt, ist es einfach, skalierbar und repliziert. Die jquery couchdb-Bibliothek hat dies gebacken in dem ist nett.

    
Ryan Ramage 25.11.2011 23:45
quelle

Tags und Links