मैं वर्तमान में CouchDB का उपयोग करके विकी-एस्क एप्लिकेशन पर काम कर रहा हूं और एक दस्तावेज़ संस्करण योजना को लागू करने की कोशिश कर रहा हूं। जिस तरह से मैं इसे देखता हूं, ऐसा करने के दो तरीके हैं:
- प्रत्येक संस्करण को एक अलग दस्तावेज़ के रूप में संग्रहीत करें
- पुराने संस्करणों को एक दस्तावेज़ में संलग्नक के रूप में संग्रहीत करें।
अभी, मुझे # 1 कार्य करने का एक रूप मिला है। जब कोई उपयोगकर्ता किसी दस्तावेज़ को संपादित करता है और उसे सहेजता है, तो बैक-एंड पहले पिछले संशोधन को एक नए दस्तावेज़ में कॉपी करता है और फिर नए संस्करण को बचाता है। प्रत्येक दस्तावेज़ में एक 'इतिहास' सरणी होती है जिसमें प्रत्येक संस्करण पर डेटा होता है (पुराने संस्करण का दस्तावेज़ _id, टाइमस्टैम्प, संपादक, आदि)।
चूंकि यह इतिहास सरणी अक्सर अद्यतन किए गए दस्तावेज़ के लिए बहुत लंबा हो सकता है, मेरे पास एक ऐसा दृश्य है जो एक दस्तावेज़ को सामान्य पढ़ने के दौरान इतिहास (और इतिहास लाने के लिए एक और दृश्य) प्राप्त करता है।
मेरा प्रश्न यह है: मैं अपने वर्तमान दृष्टिकोण के बारे में असहज महसूस करता हूं और 'अटैचमेंट' पद्धति को बदलने के बारे में सोच रहा हूं। लेकिन मुझे यकीन नहीं। मैं किसी ऐसे व्यक्ति से उम्मीद कर रहा हूं जो CouchDB को मुझसे बेहतर जानता है (मैं केवल कुछ हफ्तों के लिए इस पर रहा हूं - और यह CouchDB का उपयोग करने वाला मेरा पहला प्रोजेक्ट है ... और NoSQL) मुझे बता सकता है कि प्रत्येक के पेशेवरों और विपक्ष क्या हैं। दृष्टिकोण। या वहाँ शायद कुछ अन्य संस्करण योजना है कि मैं देख रहा हूँ?