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?