अद्वितीय बाधा के लिए नामकरण सम्मेलन


129

नामकरण परंपराएं महत्वपूर्ण हैं, और प्राथमिक कुंजी और विदेशी कुंजी में आमतौर पर उपयोग किया जाता है और स्पष्ट सम्मेलनों ( PK_Tableऔर FK_Table_ReferencedTable, क्रमशः)। IX_Table_Columnअनुक्रमणिका के लिए नामकरण भी काफी मानक है।

UNIQUE बाधा के बारे में क्या? क्या इस बाधा के लिए आमतौर पर स्वीकृत नामकरण सम्मेलन है? मैंने देखा है UK_TableName_Column, UQ_TableName_Columnऔर कोई सिफारिश कर AX_TableName_Columnरहा है - मुझे नहीं पता कि वह कहां से आता है।

मैंने आमतौर पर उपयोग किया है, UQलेकिन मुझे यह विशेष रूप से पसंद नहीं है, और मुझे एक UKवकील के खिलाफ इसका उपयोग करने की अपनी पसंद का बचाव करने में मज़ा नहीं आता है ।

मैं बस यह देखना चाहूंगा कि क्या सबसे अधिक प्रचलित नामकरण पर सहमति है, या एक अच्छा तर्क है कि क्यों कोई दूसरों की तुलना में अधिक समझ में आता है।


1
@ कोई भी कारण क्यों? मैं भी करता हूं, लेकिन मैं हमेशा खुद से पूछता हूं कि कोई क्यों सिर्फ उपयोग करता है U। किस बात के लिए Qखड़ा है?
कर्क ब्रॉडहर्स्ट

1
आप IndeX के लिए IX के बारे में एक ही सवाल पूछ सकते हैं ... सिर्फ मैं ही क्यों?
क्रिस जे।

3
"यूक्यू" "यूनीक्वाय" का संक्षिप्त नाम है। दो अक्षरों का कारण मूल रूप से यह "पीके" द्वारा एक सेट मिसाल है।
मार्क सिडैड

2
व्यक्तिगत रूप से मैंने "IndeX" के लिए IX के डिफ़ॉल्ट के लिए श्रद्धांजलि में "यूनिक इंडेक्स" के लिए UX_ * का उपयोग किया। मैं UK_ को विशेष रूप से नापसंद करता हूं क्योंकि मैं यूनाइटेड किंगडम से हूं। मुझे AK पर राजी किया जा सकता है अगर इंटरनेट को पसंद किया जाए।
टिम एबेल

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

जवाबों:


56

मेरी सोच यह एक कुंजी नहीं है: यह एक बाधा है।

यह पाठ्यक्रम की कुंजी के रूप में इस्तेमाल किया जा सकता है, और विशिष्ट रूप से एक पंक्ति की पहचान करता है, लेकिन यह कुंजी नहीं है।

एक उदाहरण यह होगा कि कुंजी "थिंगआईडी" है, प्राकृतिक कुंजी के साथ थिंगनेम की जगह एक सरोगेट कुंजी का उपयोग किया जाता है। आपको अभी भी थिंगनेम को विवश करने की आवश्यकता है : इसका उपयोग एक कुंजी के रूप में नहीं किया जाएगा।

मैं UQ और UQC (यदि संकुल) का उपयोग करता हूँ।

आप इसके बजाय एक अद्वितीय सूचकांक का उपयोग कर सकते हैं और "IXU" के लिए जा सकते हैं। नियोजित तर्क द्वारा, एक इंडेक्स भी एक कुंजी है लेकिन केवल अद्वितीय होने पर। अन्यथा यह एक सूचकांक है। तो फिर हम IK_columnnameअनूठे इंडेक्स और IX_columnnameगैर-अनूठे इंडेक्स के लिए शुरू करेंगे । अद्भुत।

और एक अद्वितीय बाधा और एक अद्वितीय सूचकांक के बीच एकमात्र अंतर INCLUDE कॉलम है।

संपादित करें: फरवरी 2013। SQL Server 2008 के बाद से, अनुक्रमित में फ़िल्टर भी हो सकते हैं। अड़चन नहीं हो सकती

तो, यह एक के लिए नीचे आता है

  • यूसी के साथ एसक्यूएल-उपयोग करने वाले ग्रह के बाकी हिस्सों के अनुसार छड़ी
  • यूनिक इंडेक्स के लिए IK का उपयोग करें (क्लस्टर के लिए भी IKC) सुसंगत होने के लिए ...

1
क्या आप दृढ़ता से "UX" पर "IXU" पसंद करेंगे?
हमीश ग्रुबीजन


133

सूचकांकों और बाधाओं के लिए मेरा नामकरण सम्मेलन:

  • प्राथमिक कुंजी। _PK
  • अद्वितीय सूचकांक / बाधा। _AK {XX}
  • गैर-अद्वितीय सूचकांक। _IX {XX}
  • अड़चन की जाँच करें। _CK {XX}
  • डिफ़ॉल्ट बाधा। _DF {XX}
  • विदेशी कुंजी बाधा। _FK {XX}

जहाँ {xx} एक 2-अंकीय अनुक्रम संख्या है, जो प्रति तालमेल प्रकार के लिए 01 से शुरू होती है। प्राथमिक कुंजी को एक क्रम संख्या नहीं मिलती है क्योंकि केवल एक ही हो सकती है। 2-वर्ण अल्फा प्रत्यय अर्थ हैं:

  • पीके: प्राथमिक कुंजी
  • एके: वैकल्पिक कुंजी
  • FK: विदेशी कुंजी
  • IX: IndeX
  • CK: ChecK
  • DF: डीफॉल्ट

मैं आम तौर पर ऑब्जेक्ट प्रकार के बजाय नियंत्रण ऑब्जेक्ट द्वारा मेटाडेटा / सिस्टम कैटलॉग डेटा समूह करना चाहता हूं।


10
एके: वैकल्पिक कुंजी वह है जो SQL सर्वर डेटा उपकरण 2012 की डिज़ाइन सतह उन्हें भी कहता है।
एलेक्स कीस्मिथ

15
@AlexKeySmith: यह समझाने के लिए धन्यवाद कि Microsoft इसके लिए AK का उपयोग क्यों करता है !!
टीजे क्राउडर

कोई समस्या नहीं @TJCrowder :-)
एलेक्स कीस्मिथ

@TJCrowder, इकाई-संबंध / डेटाबेस मॉडलिंग की दुनिया में, यह एक वैकल्पिक कुंजी है, क्योंकि, प्राथमिक कुंजी की तरह, वैकल्पिक कुंजी को शामिल करने वाला कॉलम अद्वितीय होना चाहिए, इस प्रकार पंक्ति / कछुए के लिए [वैकल्पिक] पहचान प्रदान करता है।
निकोलस कैरी

@ नाइकोलासकेरी: नहीं, मुझे मिल गया - जैसे ही मैंने एलेक्स की टिप्पणी देखी, रोशनी हो गई। :-)
टीजे क्राउडर

5

मैं यूक्यू का उपयोग करता हूं। यूके में K मुझे K के बारे में सोचता है क्योंकि इसका उपयोग PK और FK में किया जाता है। खैर, मैं यूनाइटेड किंगडम के वैसे भी सोचता हूं; विडंबना यह है कि यह यूके के लिए एक उपसर्ग होना चाहिए जब ब्रिटेन कई अन्य संघों को लाता है =)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.