Şu anda CouchDB kullanarak wiki-esque bir uygulama üzerinde çalışıyorum ve bir belge sürüm oluşturma düzeni uygulamaya çalışıyorum. Gördüğüm gibi bunu yapmanın iki yolu var:
- Her sürümü ayrı bir belge olarak saklayın
- Eski sürümleri tek bir belgeye ek olarak saklayın.
Şu anda 1 numaralı çalışmam var. Kullanıcı bir belgeyi düzenleyip kaydettiğinde, arka uç önce önceki düzeltmeyi yeni bir belgeye kopyalar ve sonra yeni sürümü kaydeder. Her belgede, her sürümdeki verileri içeren bir 'geçmiş' dizisi vardır (eski sürümün belge kimliği, zaman damgası, düzenleyici vb.).
Bu geçmiş dizisi sık sık güncellenen bir belge için oldukça uzun olabilir, ben normal bir okuma (ve geçmiş getirme için başka bir görünüm) sırasında bir belge sans geçmiş getiren bir görünüm var.
Sorum şudur: Mevcut yaklaşımımdan rahatsız oluyorum ve 'bağlanma' yöntemine geçmeyi düşünüyorum. Ama emin değilim. CouchDB'yi benden daha iyi bilen birini umuyorum (sadece birkaç haftadır buradayım - ve bu CouchDB'yi kullanan ilk projem ... ve NoSQL) bana her birinin artılarını ve eksilerini neler olduğunu söyleyebilir yaklaşmak. Ya da göz ardı ettiğim başka bir versiyonlama düzeni var mı?