मैं एक CouchApp (कोई मिडलवेयर) के लिए सबसे अच्छा तरीका तय करने का प्रयास कर रहा हूं। चूंकि मेरे विचार की समानताएं हैं, मान लीजिए कि हमारे पास एक कॉच डीबी में संग्रहीत स्टैक ओवरफ्लो पृष्ठ है। संक्षेप में इसमें शीर्ष, उत्तर और धूमकेतु पर वास्तविक प्रश्न शामिल है। वे मूल रूप से तीन परतें हैं।कॉच डीबी: एकल दस्तावेज़ बनाम "जुड़ने" दस्तावेज़ एक साथ
इसे संग्रहीत करने के दो तरीके हैं। या तो डेटा के उपयुक्त JSON प्रतिनिधित्व वाले एक दस्तावेज़ के भीतर, या एक अलग दस्तावेज़ के भीतर प्रविष्टि के प्रत्येक भाग को बाद में एक दृश्य के माध्यम से संयोजित करें (इस प्रकार: http://www.cmlenz.net/archives/2007/10/couchdb-joins)
अब, दोनों दृष्टिकोण ठीक हो सकते हैं, फिर भी मेरे वर्तमान दृष्टिकोण से दोनों बड़े पैमाने पर डाउनसाइड्स हैं। एक व्यस्त दस्तावेज़ संग्रहीत करना (एकाधिक उपयोगकर्ताओं के माध्यम से कई परिवर्तन अपेक्षित हैं) क्योंकि सिग्नल इकाई विवादों का कारण बनती है। यदि उपयोगकर्ता ए दस्तावेज़ में अपने परिवर्तनों को संग्रहीत करता है, तो उपयोगकर्ता बी को उसके अपडेट को टाइप करने के बाद एक संघर्ष त्रुटि प्राप्त होगी। मैं कल्पना कर सकता हूं कि पुनः प्रयास करने से पहले दस्तावेज़ को फिर से डाउनलोड करने के माध्यम से उपयोगकर्ताओं के ज्ञान के बिना इसे ठीक करना संभव है।
लेकिन क्या होगा अगर दस्तावेज़ नहीं बल्कि बड़ा है? मैं उन्हें समय के साथ उड़ा दिया जाएगा, जो एक बचत प्रक्रिया पर काफी ध्यान देने योग्य देरी करेगा, विशेष रूप से यदि एक ही समय में एक दस्तावेज़ को अद्यतन करने वाले कई उपयोगकर्ताओं के कारण पुनः प्रयास प्रक्रिया कई बार होनी चाहिए।
एक और समस्या जो मैं देख रहा हूं वह संपादन कर रहा है। प्रत्येक उपयोगकर्ता को उसके योगदान को संपादित करने की अनुमति दी जानी चाहिए। अब, अगर वे एक दस्तावेज़ में संग्रहीत हैं तो ठोस ऑथ हैंडलर लिखना मुश्किल हो सकता है।
ठीक है, अब कई दस्तावेज़ दृष्टिकोण देखें। प्रश्न, उत्तर और टिप्पणियां अपने दस्तावेजों के भीतर संग्रहित की जाएंगी। लाभ: दस्तावेज़ के वास्तविक मालिक केवल विवाद पैदा कर सकते हैं, ऐसा कुछ जो अक्सर नहीं होता है। पूरे के बजाय छोटे तत्व होने के कारण, पुनः लोड करने में अधिक समय नहीं लगेगा। इसके अलावा ऑथ रूटीन को महसूस करना काफी आसान होना चाहिए।
अब यहां नकारात्मक है। एकल दस्तावेज़ क्वेरी और डिस्प्ले के लिए वास्तविक आसान है। आस-पास बिछाने वाले बहुत सारे अनगिनत स्निपेट्स एक गन्दा चीज की तरह लगते हैं क्योंकि मुझे वास्तव में 100% तैयार करने के लिए वास्तविक दृश्य नहीं मिला है जो कि जेएसओएन ऑब्जेक्ट का उपयोग करने के लिए तैयार है जिसमें पूरे आइटम को ऑर्डर और संरचित प्रारूप में शामिल किया गया है।
मुझे आशा है कि मैं वास्तविक समस्या संवाद करने में सक्षम किया गया है। मैं यह तय करने का प्रयास करता हूं कि कौन सा समाधान मेरे लिए अधिक उपयुक्त होगा, जो समस्याओं को दूर करना आसान है। मैं भंडारण और पूछताछ के मामले में सुंदर होने का पहला समाधान कल्पना करता हूं, फिर भी दूसरा दृश्य दृश्य के भीतर बेहतर कुंजी प्रबंधन के माध्यम से अधिक व्यावहारिक है (मैं पूरी तरह से कुंजी के सिद्धांत में नहीं हूं)।
आप पहले से आपकी मदद की :)
हाय रयान! आपके विस्तृत और समझने योग्य उत्तर के लिए बहुत बहुत धन्यवाद। आपने मुझे कुछ चीजें बताईं जिन्हें मैं अभी तक नहीं जानता था। मैंने दूसरे विकल्प के पहले संस्करण को जल्दी से कार्यान्वित करने में कामयाब रहा है, फिर भी यह आपके इनपुट के आधार पर इसे ट्विक कर देगा। आपका बहुत बहुत धन्यवाद! :) –