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

टेबल में प्राथमिक कुंजी के लिए सबसे अच्छा अभ्यास क्या है?

मैं कुछ नियमों का पालन करता हूं:

  1. प्राथमिक कुंजियाँ यथासंभव छोटी होनी चाहिए। एक संख्यात्मक प्रकार को प्राथमिकता दें क्योंकि संख्यात्मक प्रकार वर्ण स्वरूपों की तुलना में बहुत अधिक कॉम्पैक्ट प्रारूप में संग्रहीत होते हैं। ऐसा इसलिए है क्योंकि अधिकांश प्राथमिक कुंजी किसी अन्य तालिका में विदेशी कुंजी होगी और साथ ही कई अनुक्रमणिका में उपयोग की जाएगी। आपकी कुंजी जितनी छोटी होगी, अनुक्रमणिका उतनी ही छोटी होगी, कैश में आपके द्वारा उपयोग किए जाने वाले कम पृष्ठ होंगे।
  2. प्राथमिक कुंजियाँ कभी नहीं बदलनी चाहिए। प्राथमिक कुंजी को अपडेट करना हमेशा प्रश्न से बाहर होना चाहिए। ऐसा इसलिए है क्योंकि इसके कई इंडेक्स में उपयोग किए जाने की संभावना है और इसे विदेशी कुंजी के रूप में उपयोग किया जाता है। किसी एकल प्राथमिक कुंजी को अपडेट करने से परिवर्तनों के तरंग प्रभाव हो सकते हैं।
  3. अपने तर्क मॉडल प्राथमिक कुंजी के रूप में "आपकी समस्या प्राथमिक कुंजी" का उपयोग न करें। उदाहरण के लिए पासपोर्ट नंबर, सामाजिक सुरक्षा नंबर, या कर्मचारी अनुबंध संख्या, क्योंकि ये "प्राकृतिक कुंजी" वास्तविक दुनिया की स्थितियों में बदल सकती हैं। एकरूपता को लागू करने के लिए जहां आवश्यक हो, उनके लिए UNIQUE बाधाओं को जोड़ना सुनिश्चित करें।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जहां क्लॉज में स्ट्रिंग्स की सूची बनाने के लिए अल्पविराम से अलग किए गए स्ट्रिंग को पार्स करें

  2. क्या हम SQL में एक दृश्य के लिए पैरामीटर पास कर सकते हैं?

  3. SQL सर्वर में किसी संख्या को 2 दशमलव स्थानों पर प्रारूपित करने के लिए 4 कार्य

  4. SQL सर्वर मौजूदा तालिका में ऑटो वृद्धि प्राथमिक कुंजी जोड़ें

  5. Scope_identity () उपयोग के साथ नेस्टेड बल्क इंसर्ट करने का सबसे तेज़ तरीका?