2015-02-10 9 views
6

मैं डायनेमो डीबी का उपयोग करने की कोशिश कर रहा हूं। मैं डायनेमो डीबी टेबल्स का परीक्षण करने की कोशिश कर रहा हूं लेकिन मुझे इसमें विदेशी कुंजी नहीं मिल सकती है।डायनेमो डीबी में विदेशीकी कैसे असाइन करें?

+0

आपका क्या मतलब है? डायनेमो डीबी एक रिलेशनल डेटाबेस नहीं है। आपको यह कहना चाहिए कि एक विशिष्ट समाधान मांगने के बजाय आपकी वास्तविक समस्या क्या है। इसके अलावा, उपरोक्त आपकी टिप्पणियां वार्तालाप में कुछ भी नहीं जोड़ती हैं। – mkobit

+0

क्या हम डायनेमो डीबी में विदेशी कुंजी को परिभाषित करेंगे? SQL सर्वर में –

+0

विदेशी कुंजी की तरह। –

उत्तर

7

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

FAQ से समझा है कि यह एक संबंधपरक डेटाबेस नहीं है: सभी के लिए नहीं

जबकि अमेज़न DynamoDB डेटाबेस क्षमता, प्रबंधन, प्रदर्शन, और विश्वसनीयता के मुख्य समस्याओं tackles, यह करता है एक संबंधपरक डेटाबेस की कार्यक्षमता। यह जटिल जटिल संबंधों (जैसे जुड़ता है) या जटिल लेनदेन का समर्थन नहीं करता है। यदि आपके वर्कलोड को इस कार्यक्षमता की आवश्यकता है, या आप मौजूदा संबंध इंजन के साथ संगतता की तलाश में हैं, तो आप अमेज़ॅन आरडीएस या अमेज़ॅन ईसी 2 पर एक रिलेशनल इंजन चलाने की इच्छा रखते हैं। जबकि संबंधपरक डेटाबेस इंजन मजबूत सुविधाओं और कार्यक्षमता प्रदान करते हैं, एक एकल रिलेशनल डेटाबेस इंस्टेंस से परे वर्कलोड स्केलिंग अत्यधिक जटिल है और इसमें महत्वपूर्ण समय और विशेषज्ञता की आवश्यकता होती है।

+0

- क्या किसी अन्य तालिका की हैश कुंजी का उपयोग करना हमेशा अच्छा विचार है, 'User.id' कहें, किसी अन्य तालिका में,' Payments.id' कहें, ताकि आप सीधे 'Payments.id = = User.id' डायनेमो में मैपिंग जैसी विदेशी कुंजी बनाने और सीधी पूछताछ की अनुमति देने के लिए? केवल एक चीज जो मैं देख सकता हूं वह यह है कि जब तक आप इसे Payments.userId कहते हैं और इसे हैश कुंजी के रूप में सेट नहीं करते हैं, लेकिन तब आप अपने सभी डीबी के दौरान स्थिरता खो देते हैं जब पेश.आईडी, उपयोगकर्ता जैसे हैश कुंजी इंडेक्स नामकरण करते हैं। आईडी, वॉलेट, आईडी, आदि – anon58192932

+1

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

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