2011-01-25 10 views
12

मैं यह पता लगाने की कैसे सबसे अच्छा अपने सिस्टम के लिए यह लागू करने के लिए ... और अब के लिए आरडीबीएमएस स्थान से बाहर मेरे सिर प्राप्त करने की कोशिश कर रहा हूँ ...बेसिक NoSQL दस्तावेज़ डिजाइन सवाल

मेरे वर्तमान DB का एक हिस्सा है तीन टेबल: शो, शोएन्ट्री, और एंट्री। मूल रूप से शोएन्ट्री शो और एंट्री के बीच कई से अधिक जुड़ने वाली तालिका है। मेरे आरडीबीएमएस में यह सोच रहा है कि यह काफी तार्किक है क्योंकि विवरण दिखाने के लिए किसी भी बदलाव को एक ही स्थान पर किया जा सकता है, और यह एंट्री के साथ भी किया जा सकता है।

दस्तावेज़-आधारित संग्रहण में इसे प्रतिबिंबित करने का सबसे अच्छा तरीका क्या है? मुझे यकीन है कि ऐसा करने का कोई भी तरीका नहीं है लेकिन मैं मदद नहीं कर सकता लेकिन सोच सकता हूं कि दस्तावेज-आधारित भंडारण इस मामले के लिए उपयुक्त है या नहीं।

एफवाईआई, मैं वर्तमान में रावेनडीबी को लागू करने पर विचार कर रहा हूं। हालांकि सामान्य नोएसक्यूएल डिज़ाइन पर चर्चा अच्छी होगी, रावेनडीबी केंद्रित एक शानदार होगा!

धन्यवाद, डी

उत्तर

21

दस्तावेज़ डेटाबेस में कई से अधिक रिश्तों को मॉडलिंग करते समय, आप आमतौर पर दस्तावेज़ों में से केवल एक में विदेशी कुंजी का संग्रह संग्रहीत करते हैं। जो दस्तावेज़ आप चुनते हैं वह उस दिशा पर निर्भर करता है जिस पर आप रिश्ते को पार करने का इरादा रखते हैं। इसे एक तरफ घुमावदार छोटा है, इसे दूसरी तरफ घुमाने के लिए एक सूचकांक की आवश्यकता होती है।

शॉपिंग टोकरी उदाहरण लें। यह जानना ज़रूरी है कि कौन सी चीजें एक विशेष टोकरी में हैं, जिसमें टोकरी में एक विशेष वस्तु होती है। चूंकि हम आम तौर पर टोकरी-टू-आइटम दिशा में रिश्तों का पालन कर रहे हैं, इसलिए आइटम में टोकरी आईडी स्टोर करने की तुलना में टोकरी में आइटम आईडी स्टोर करना अधिक समझ में आता है।

आप अभी भी एक सूचकांक का उपयोग करके विपरीत दिशा में रिश्ते को पार कर सकते हैं (उदाहरण के लिए किसी विशेष आइटम वाले टोकरी ढूंढें), लेकिन सूचकांक पृष्ठभूमि में अपडेट किया जाएगा, इसलिए यह हमेशा 100% सटीक नहीं होगा। (आप इंडेक्स को WaitForNonStaleResults के साथ सटीक बनने का इंतजार कर सकते हैं, लेकिन वह देरी आपके यूआई में दिखाई देगी।)

यदि आपको दोनों दिशाओं में तत्काल 100% सटीकता की आवश्यकता है, तो आप दोनों दस्तावेज़ों में विदेशी कुंजी स्टोर कर सकते हैं, लेकिन आपका आवेदन जब भी रिश्ते बनाया या नष्ट हो जाता है तो दो दस्तावेज़ अपडेट करना होगा।

+1

धन्यवाद - महान स्पष्टीकरण। मैं प्रत्येक पक्ष पर विदेशी कुंजी भंडार करने के साथ-साथ कुछ रिश्ते के लिए केवल एक पक्ष के संयोजन के साथ चला गया हूं। प्रत्येक दिशा में रिश्ते तक पहुंचने वाले मेरे यूआई की आवृत्ति काफी महत्वपूर्ण है। अच्छी और संरचित स्पष्टीकरण के लिए – codedog

+0

+1। –

7

This मेरे सवाल को हल करने की दिशा में एक लंबा रास्ता चला गया!

संबंधित मुद्दे