2010-04-10 12 views
6

क्या सरल डीबी में पहचान बीज के बराबर है?अमेज़ॅन सरल डीबी पहचान बीज बराबर

यदि उत्तर नहीं है, तो आप किसी ग्राहक संख्या या ऑर्डर नंबर की तरह कुछ बनाने को कैसे संभालेंगे जो सृजन डुप्लिकेट संख्याओं को रोक देगा?

मेरा अनुभव मुख्य रूप से SQL सर्वर से है जिसमें मैं या तो पहचान बीज के साथ प्राथमिक कुंजी बना सकता हूं या संख्या को बढ़ाने के लिए संग्रहीत प्रक्रिया में लेनदेन का उपयोग करता हूं।

आपकी मदद के लिए धन्यवाद!

उत्तर

6

आप सशर्त लेखन का उपयोग कर अद्वितीय कुंजी बना सकते हैं। बस उस अगले ग्राहक नंबर के साथ PutAttributes करें जिसका आप उपयोग करना चाहते हैं और वह डेटा जिसे आप स्टोर करना चाहते हैं। आप वास्तविक आइटम नाम के लिए कोई शर्त नहीं जोड़ सकते हैं, लेकिन आप हमेशा एक विशेषता का उपयोग कर सकते हैं, (जैसे सृजन दिनांक या उपयोगकर्ता समूह)।

शर्त निर्धारित करें:

Expected.1.Name=creation_date 
    Expected.1.Exists=false 

कॉल केवल सफल होगा अगर वहाँ है कि आइटम नाम के साथ एक आइटम में कोई CREATION_DATE है। यदि आप हमेशा creat_date लिखते हैं, तो आपको नए आइटम नाम पर आशावादी लॉकिंग का प्रभाव मिलता है। निस्संदेह आप अपनी इच्छित किसी भी विशेषता का उपयोग कर सकते हैं, जब तक आप इसे पहले सशर्त पॉट में हमेशा शामिल न करें।

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

यदि आप इसे बर्दाश्त नहीं कर सकते हैं, तो आपको आउटेज के दौरान अपनी अनूठी कुंजी प्राप्त करने के लिए किसी प्रकार का वैकल्पिक तरीका कोड करना होगा। एक अलग SimpleDB क्षेत्र का उपयोग केवल मुख्य पीढ़ी के लिए किया जा सकता है, क्योंकि SimpleDB अभी भी सामान्य लेखन (गैर-सशर्त पुटएट्रिब्यूट) को आउटेज के दौरान स्वीकार करेगा।

+0

उत्तर के लिए धन्यवाद! इसे पढ़ने के बाद, मैं प्रलेखन पर वापस गया जो अब मुझे स्पष्ट करता है। यह यहां पाया जा सकता है: http://docs.amazonwebservices.com/AmazonSimpleDB/2009-04-15/DeveloperGuide/ConditionalPut.html – Zaffiro

3

यदि आपके पास पहले से कुछ अद्वितीय नहीं है जो काम करेगा, तो आइटम के लिए GUID का उपयोग करना शायद सामान्य समाधान है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद! एक गाइड बनाना काम करेगा, लेकिन मैं ऐसा कुछ उत्पन्न करना चाहता हूं जो अधिक मानव पठनीय है। – Zaffiro

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