Strategia wersjonowania CouchDB

Czy poniższa strategia byłaby skuteczna w implementowaniu wersjonowania (przy użyciu „przykładu” jako przykładowego typu dokumentu):

Mieć jeden oryginalny dokument, w którym pole typu ma nazwę example_original.

Kolejne zmiany w dokumencie mają jako klucz typ przykładowa-zmiana i id oryginalnego dokumentu. Zmiana będzie również zawierać znacznik czasu.

Zachowaj jeden dokument z typem example_current, który jest wynikiem oryginalnego przykładu z wszystkimi przykładami zmiany „zastosowany”. Nowy dokument przykładowej zmiany zostanie automatycznie zastosowany do tego dokumentu.

Znalezienie konkretnej wersji polegałoby na pobraniu pierwotnego dokumentu przykładowego i zastosowaniu pożądanych zmian (głównie do pewnego znacznika czasu, ale może to być także szereg zmian).

Powinienem wspomnieć, że mój przypadek użycia będzie wymagał ograniczonej liczby zmian w oryginale. Większość aktualizacji będzie składać się z nowych oryginalnych dokumentów. Chociaż jest to mój obecny przypadek użycia, interesowałbym się także problemami, które wynikałyby z wielu zmian, które byłyby związane.

Jakie zalety i wady widzisz w tym podejściu?

questionAnswers(4)

yourAnswerToTheQuestion