हमारे देव समूह में हमारे पास प्राथमिक और विदेशी कुंजी के नामकरण सम्मेलन के बारे में एक उग्र बहस है। हमारे समूह में मूल रूप से विचार के दो स्कूल हैं:
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
या
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
मैं किसी भी कॉलम में तालिका के नाम की नकल नहीं करना चाहता (इसलिए मैं ऊपर दिए गए विकल्प 1 को पसंद करता हूं)। वैचारिक रूप से, यह कई अन्य भाषाओं में अनुशंसित प्रथाओं के अनुरूप है, जहां आप इसके संपत्ति के नाम में ऑब्जेक्ट के नाम का उपयोग नहीं करते हैं। मुझे लगता है कि विदेशी कुंजी का नामकरण EmployeeID
(या Employee_ID
बेहतर हो सकता है) पाठक को बताता है कि यह तालिका ID
का कॉलम है Employee
।
कुछ अन्य लोग विकल्प 2 पसंद करते हैं जहां आप तालिका के नाम के साथ उपसर्गित प्राथमिक कुंजी का नाम देते हैं ताकि पूरे डेटाबेस में स्तंभ नाम समान हो। मैं उस बिंदु को देखता हूं, लेकिन अब आप विदेशी कुंजी से प्राथमिक कुंजी को नेत्रहीन रूप से अलग नहीं कर सकते।
इसके अलावा, मुझे लगता है कि स्तंभ नाम में तालिका का नाम होना अतिरेक है, क्योंकि यदि आप तालिका को एक इकाई के रूप में और उस इकाई की संपत्ति या विशेषता के रूप में एक स्तंभ के बारे में सोचते हैं, तो आप इसे आईडी विशेषता के रूप में मानते हैं Employee
, नहीं EmployeeID
एक कर्मचारी की विशेषता। मैं नहीं जाते एक मेरे सहकर्मी क्या उसके पूछने PersonAge
या PersonGender
है। मैं उससे पूछता हूं कि उसकी उम्र क्या है।
तो जैसा मैंने कहा, यह एक उग्र बहस है और हम इसके बारे में और इस पर चलते हैं। मुझे कुछ नए दृष्टिकोण प्राप्त करने में दिलचस्पी है।