MongoDB'de veri versiyonlamasını nasıl uygulayacağınızı düşüncelerinizi paylaşabilir misiniz? ( Cassandra ile ilgili benzer bir soru sordum . Bunun için db'nin daha iyi olduğu düşünceleriniz varsa lütfen paylaşın)
Basit bir adres defterinde kayıtları sürümüne ihtiyacım olduğunu varsayalım. (Adres defteri kayıtları düz json nesneleri olarak saklanır). Tarihin:
- seyrek olarak kullanılacak
- bir "zaman makinesi" tarzında sunmak için bir kerede kullanılacak
- tek bir kaydın birkaç yüzden fazla sürümü olmayacak. tarihin süresi dolmaz.
Aşağıdaki yaklaşımları düşünüyorum:
Kayıtların geçmişini veya kayıtlardaki değişiklikleri saklamak için yeni bir nesne koleksiyonu oluşturun. Adres defteri girişine referansla sürüm başına bir nesne depolardı. Bu tür kayıtlar aşağıdaki gibi görünecektir:
{ '_id': 'yeni kimlik', 'kullanıcı': kullanıcı_kimliği, 'zaman damgası': zaman damgası, 'address_book_id': 'adres defteri kaydının kimliği' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ...} }
Bu yaklaşım, belge başına bir dizi sürümü saklayacak şekilde değiştirilebilir. Ancak bu herhangi bir avantaj olmaksızın daha yavaş bir yaklaşım gibi görünmektedir.
Sürümleri, adres defteri girişlerine eklenmiş serileştirilmiş (JSON) nesne olarak depolayın. MongoDB belgelerine bu tür nesnelerin nasıl ekleneceğinden emin değilim. Belki bir dizi dizisi olarak. ( CouchDB ile Basit Belge Sürümlendirmesinden sonra modellenmiştir )