uuid
का उपयोग करें। PostgreSQL एक कारण के लिए देशी प्रकार है।
यह यूआईआईडी को 128-बिट बाइनरी क्षेत्र के रूप में आंतरिक रूप से संग्रहीत करता है। आपके अन्य प्रस्तावित विकल्प इसे हेक्साडेसिमल के रूप में संग्रहीत करते हैं, जो तुलना में बहुत अक्षम है।
इतना ही नहीं, लेकिन:
uuid
आदेश देने के लिए एक सरल bytewise तरह से करता है। text
, char
और varchar
कॉलेशन और लोकेशंस पर विचार करें, जो यूयूआईडी के लिए गैरकानूनी है।
uuid
का केवल एक कैननिक प्रतिनिधित्व है। पाठ आदि के लिए भी यह सच नहीं है; आप बनाम लोअर केस हेक्स, उपस्थिति या {...-...}
रों आदि
सिर्फ कोई सवाल ही नहीं है के अभाव ऊपरी विचार करने के लिए किया है। uuid
का उपयोग करें।
केवल अन्य प्रकार है कि किसी भी समझ में आता है bytea
है, जो कम से कम सीधे UUID के 16 बाइट्स स्टोर करने के लिए इस्तेमाल किया जा सकता है। यह वही है जो मैं करता हूं अगर मैं उन प्रणालियों का उपयोग कर रहा था जो बुनियादी सेट के बाहर डेटा प्रकारों का सामना नहीं कर सके, जैसे किसी प्रकार का वास्तव में गूंगा ओआरएम।
स्रोत
2015-08-25 01:47:06
जहां तक मुझे पता है, यूयूआईडी प्रकार 16 बाइट्स का उपयोग करता है, मूल रूप से यूयूआईडी को यह संग्रहीत करता है कि यह क्या है: 128-बिट पूर्णांक। एक 'चार (36) 'या' वर्चर (36) '36 बाइट्स का उपयोग करेगा। हालांकि, मुझे लगता है कि यह कहां दस्तावेज नहीं है, हालांकि। इसके अलावा, आप और यदि आपके UUID अपने प्रमुख होने जा रहा है कैसे PostgreSQL तालिका/सूचकांक क्लस्टरिंग करता है के असर के बारे में पता करने की आवश्यकता है आप क्लस्टर विकल्प का उपयोग करने की योजना है। –
http://simononsoftware.com/how-to-store-uuids-in-postgresql/ –