2011-09-09 15 views
6

के लिए अद्वितीय ऑब्जेक्ट आईडी द्वारा संदर्भित किया गया है, मैं एक वेब ऐप को कोड करना चाहता हूं जहां अधिकांश अनुभाग उपयोगकर्ता प्रोफ़ाइल पर निर्भर हैं (उदाहरण के लिए प्रति व्यक्ति अलग-अलग सूचियां आदि) और मुझे MongoDB का उपयोग करना अच्छा लगेगा। मैं मुख्य प्रोफाइल दस्तावेज़ के लिए लगभग 10 एम्बेडबैक दस्तावेज़ बनाने और अपने उपयोगकर्ता के अंदर एक उपयोगकर्ता से संबंधित सब कुछ रखने के बारे में सोच रहा था।मोंगो डीबी एम्बेडेड दस्तावेज़ बनाम एक ऑब्जेक्ट उपयोगकर्ता प्रोफाइल

मुझे मोंगोडब के लिए विदेशी कुंजी का उपयोग करने का एक स्पष्ट तरीका नहीं दिखता है, उदाहरण के लिए ऑब्जेक्ट आईडी के प्रकार के साथ _do_id फ़ील्ड बनाने का एकमात्र तरीका होगा, लेकिन वे आंतरिक रूप से पूरी तरह से असंबंधित होंगे, बस ऐसा होता है एक ही आईडी मुझे पूछना होगा।

  1. क्या शीर्ष स्तर के दस्तावेज़ के अंदर एम्बेडेड दस्तावेज़ प्रकारों की संख्या पर कोई सीमा है जो प्रदर्शन को कम कर सकता है?
  2. आप कैसे केंद्रीय प्रोफ़ाइल दस्तावेज़ रखने के मुद्दे को हल करते हैं कि अधिकांश दस्तावेजों को प्रति व्यक्ति एक दृश्य प्रस्तुत करने के लिए संबंधित होना चाहिए?
  3. क्या आप मोंगो डीबी के अंदर अर्द्ध विदेशी कुंजी का उपयोग करते हैं और ऑब्जेक्टआईड प्रकारों वाले फ़ील्ड हैं जिनके पास एम्बेड करने के बजाए कुछ अन्य दस्तावेज़ का अद्वितीय आईडी होगा?

मुझे नहीं लगता कि जब कोई दृष्टिकोण लिया जाना चाहिए। आपका बहुत बहुत धन्यवाद!

+0

+1। – Adelin

उत्तर

2
  1. प्रदर्शन के संबंध में कोई विशेष सीमा नहीं है। दस्तावेज़ जितना बड़ा होगा, उतना ही लंबे समय तक तार पर संचारित होता है। पूरा दस्तावेज़ हमेशा पुनर्प्राप्त किया जाता है।
  2. मैं इसे संदर्भों के साथ करता हूं। आप इस पृष्ठ के अनुसार सरल मैनुअल संदर्भ और डेटाबेस डीबीआरआईफ़ के बीच चयन कर सकते हैं: http://www.mongodb.org/display/DOCS/Database+References
  3. उपरोक्त लिंक अर्ध-विदेशी कुंजी तरीके से दस्तावेज़ में संदर्भ कैसे प्राप्त करता है। आप जो करने की कोशिश कर रहे हैं उसके लिए डीबीआरआईफ़ अच्छा हो सकता है, लेकिन सरल मैनुअल संदर्भ बहुत ही कुशल है।

मुझे यकीन नहीं है कि अंगूठे का एक सामान्य नियम मौजूद है जिसके लिए संदर्भ दृष्टिकोण सर्वोत्तम है। चूंकि मैं जावा या ग्रोवी का अधिकतर उपयोग करता हूं, मुझे यह तथ्य पसंद है कि मुझे एक डीबीआरआईफ़ ऑब्जेक्ट लौटाया गया है। मैं इस डेटाटाइप की जांच कर सकता हूं और इसका उपयोग यह तय करने के लिए कर सकता हूं कि संदर्भ को सामान्य तरीके से कैसे संभाला जाए।

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

मुझे उम्मीद है कि इससे मदद मिलती है। अच्छे प्रश्न के लिए

+0

तो स्पष्ट रूप से कोई सेट नियम नहीं हैं, बस कोड के प्रति अधिक विश्वसनीय क्या है। एक बड़े दस्तावेज़ को ट्रास्मिट करने के बारे में बिंदु इसकी योग्यता है, क्योंकि मुझे लगभग 10 एम्बेडेड दस्तावेज़ होने पर केवल चुने हुए फ़ील्ड का चयन करने के लिए ऐप को बताना होगा। धन्यवाद। –

+0

वैसे, स्कीमा डिज़ाइन के संबंध में कुछ सर्वोत्तम अभ्यास हैं, और उनमें से कुछ संदर्भों के उपयोग को संदर्भित करते हैं। यह एक लायक है: http://www.mongodb.org/display/DOCS/Schema+ डिज़ाइन – dlaidlaw

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