एक sequence
PostgreSQL में बिल्कुल AUTOINCREMENT
. जैसा ही है MySQL में। एक sequence
uuid
. से अधिक कुशल है क्योंकि यह uuid
. के लिए 16 के बजाय 8 बाइट्स है . आप एक uuid
का उपयोग कर सकते हैं किसी भी अन्य डेटा प्रकार की तरह प्राथमिक कुंजी के रूप में।
हालाँकि, मैं यह नहीं देखता कि यह उपयोगकर्ता आईडी के मास्किंग से कैसे संबंधित है। यदि आप किसी विशिष्ट उपयोगकर्ता की आईडी को अन्य उपयोगकर्ताओं से छिपाना चाहते हैं, तो आपको तालिका विशेषाधिकारों का सावधानीपूर्वक प्रबंधन करना चाहिए और/या आईडी का उपयोग करके हैश करना चाहिए - उदाहरण के लिए - md5()
।
यदि आप अन्य आईडी का अनुमान लगाने की कोशिश कर रहे स्नूपिंग हैकर्स से उपयोगकर्ता डेटा वाली तालिका की रक्षा करना चाहते हैं, तो uuid
प्रकार एक उत्कृष्ट विकल्प है। पैकेज uuid-ossp
कई स्वाद हैं। संस्करण 4 तब सबसे अच्छा विकल्प है क्योंकि इसमें 122 यादृच्छिक बिट्स हैं (अन्य 6 संस्करण की पहचान के लिए उपयोग किए जाते हैं)। आप इस तरह एक प्राथमिक कुंजी बना सकते हैं:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
और फिर आपको इसके बारे में कभी भी चिंता करने की आवश्यकता नहीं होगी।
पोस्टग्रेएसक्यूएल 13+
अब आप बिल्ट-इन फ़ंक्शन का उपयोग कर सकते हैं gen_random_uuid()
एक संस्करण 4 यादृच्छिक UUID प्राप्त करने के लिए।