2012-03-30 19 views
11

में रिश्ते की तरह विदेशी कुंजी मैं मोंगो डीबी में रिश्ते की तरह एक विदेशी कुंजी कैसे कार्यान्वित कर सकता हूं?मोंगो डीबी

उत्तर

8

यह देखने हिया: MongoDB normalization, foreign key and joining & & आगे http://shop.oreilly.com/product/0636920018391.do ===>http://books.google.com/books/about/Document_Design_for_MongoDB.html?id=TbIHkgEACAAJ&redir_esc=y

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

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

संपादित करें अद्यतन

http://levycarneiro.com/tag/mongodb/

levycarneiro.com/tag/mongodb [बोली] तो तुम 4 संग्रह बना। आप उन्हें एक डीबी संदर्भ के माध्यम से एक साथ जोड़ते हैं। यह एक विदेशी कुंजी की तरह काम करता है। लेकिन, यह चीजों को करने के लिए mongoDB तरीका नहीं है। प्रदर्शन दंडित किया जाएगा। [unquote]

+1

दिलचस्प। "मूल ऑब्जेक्ट में बाल ऑब्जेक्ट एम्बेड करें" का क्या अर्थ है? क्या इसका मतलब यह है कि यदि आपके पास ऑर्डर/लाइन-आइटम रिलेशनशिप है, तो आप ऑर्डर दस्तावेज़ में गुणों के रूप में लाइन-आइटम ऑब्जेक्ट्स जोड़ देंगे? – McGarnagle

+1

हाय, वास्तव में, मुझे लगता है; यहां दिलचस्प लेख - http://levycarneiro.com/tag/mongodb/ [उद्धरण] तो आप 4 संग्रह बनाते हैं: ग्राहक, आपूर्तिकर्ता, कर्मचारी और संपर्क। आप उन्हें एक डीबी संदर्भ के माध्यम से एक साथ जोड़ते हैं। यह एक विदेशी कुंजी की तरह काम करता है। लेकिन, यह चीजों को करने के लिए mongoDB तरीका नहीं है। प्रदर्शन दंडित किया जाएगा। [unquote] - :) चीयर्स –

+0

ग्रेट, यह वास्तव में सहायक टैट्स है। असल में मोंगो डीबी वस्तुओं के बीच संदर्भों को लागू करने के लिए इतना कुशल नहीं है, जैसा कि मैंने समझा था। –

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