एक गणितीय दृष्टिकोण से, यह माना जाता है कि एक मेज में अधिकांश एक प्राथमिक कुंजी होती है, यह एक साधारण तालिका संपत्ति के बजाय कुछ मनमानी नाम से प्राथमिक कुंजी को संदर्भित करने के लिए एक शॉर्टसाइट डिजाइन निर्णय प्रतीत होता है।
गैर-संकुल से क्लस्टर या इसके विपरीत एक प्राथमिक कुंजी को बदलने के परिणामस्वरूप, आपको पहले इसके नाम की खोज करनी होगी, इसे छोड़ना होगा और अंत में इसे पढ़ना होगा।
क्या मनमाने नामों का उपयोग करने में कुछ फायदा है जो मुझे नहीं दिखता है या प्राथमिक कुंजी के लिए मनमाने ढंग से नामों का उपयोग नहीं कर रहे हैं?
2011-02-22 को संपादित करें (02/22/2011 उन लोगों के लिए जो वहाँ तारीख नहीं चाहते हैं):
मेरे कार्य को दिखाते हैं, जिसके साथ आप इसके टेबल के नाम से प्राथमिक कुंजी के नाम प्राप्त कर सकते हैं (प्रारंभिक sql-sever उर्फ सिबेस सिस्टम टेबल का उपयोग करके):
create function dbo.get_pk (@tablename sysname)
returns sysname
as
begin
return (select k.name
from sysobjects o
join sysobjects k on k.parent_obj = o.id
where o.name = @tablename
and o.type = 'U'
and k.type = 'k')
end
go
जब तक कोई व्यक्ति स्पष्ट नाम की आपूर्ति नहीं करता है, तब तक gbn कोई भी व्यक्ति वास्तव में उत्पन्न नाम को पसंद नहीं करता है:
create table example_table (
id int primary key
)
select dbo.get_pk('example_table')
मुझे अभी मिला
PK__example___3213E83F527E2E1D
लेकिन क्यों sysobjects में नाम अद्वितीय होना चाहिए। यह तालिका और इसकी प्राथमिक कुंजी के लिए ठीक उसी नाम का उपयोग करने के लिए पूरी तरह से ठीक होगा।
इस तरह से करना, हमें नामकरण सम्मेलनों को स्थापित करने की आवश्यकता नहीं थी, जो गलती से उल्लंघन हो सकता है।
अब मैरिएन के जवाब:
- मैंने केवल एक गैर-प्राथमिक प्राथमिक कुंजी में एक संकुल को बदलने के कार्य को एक उदाहरण के रूप में उपयोग किया है जहां मुझे इसे छोड़ने में सक्षम होने के लिए पीके के वास्तविक नाम को जानने की आवश्यकता है।
- चीजों को उचित नामों की आवश्यकता नहीं है, यह पर्याप्त है अगर वे आसानी से विशिष्ट रूप से निरूपित कर सकते हैं। वह अमूर्तन का आधार है। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग इस तरह से होती है। आपको विभिन्न वर्गों के समान गुणों के लिए अलग-अलग नामों का उपयोग करने की आवश्यकता नहीं है ।
- यह मनमाना है, क्योंकि यह एक तालिका की संपत्ति है। तालिका का नाम आप सभी को पता होना चाहिए कि क्या आप इसका उपयोग करना चाहते हैं।