PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

प्राथमिक कुंजी के लिए यूयूआईडी या अनुक्रम?

एक 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 प्राप्त करने के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL 9.0 . के साथ लोंडिस्ट प्रतिकृति

  2. एक विदेशी कुंजी के रूप में एक कॉलम जोड़ने से विदेशी कुंजी बाधा में संदर्भित त्रुटि कॉलम मौजूद नहीं है

  3. पोस्टग्रेस्क्ल पोर्ट भ्रम 5433 या 5432?

  4. PostgreSQL:बहुमुखी INSERT

  5. टेक्स्ट सरणी में जेसन सरणी कैसे डालें?