यद्यपि विदेशी कुंजी नाम कुछ भी हो सकते हैं, यह वास्तव में तालिका नाम को पहले रखने के सम्मेलन का पालन करने के लिए एक अच्छा अभ्यास है।
इसका सबसे महत्वपूर्ण कारण यह है कि विदेशी कुंजी नाम एक डेटाबेस के भीतर अद्वितीय होना चाहिए (इसके विपरीत सूचकांक नामों के लिए, जो प्रत्येक तालिका के भीतर केवल अद्वितीय होना चाहिए)। इसलिए, इस सम्मेलन का अनुसरण करते हुए, विदेशी कुंजी नामों को प्रत्येक तालिका के भीतर अद्वितीय होना चाहिए।
व्यक्तिगत रूप से, मैं सम्मेलन का उपयोग करता हूं [table_name]_fk_[field_name]
।
अपनी विदेशी चाबियों को नाम देने के लिए, आपको स्पष्ट रूप से केवल विदेशी कुंजी के बजाय, मेज पर बाधा को स्पष्ट करना होगा।
सरल विधि (स्वचालित नामकरण, परिणाम होगा [table_name]_ibfk_[index]
):
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
स्पष्ट विधि (परिणाम में [table_name]_fk_[field_name]
):
ALTER TABLE `[table_name]`
ADD CONSTRAINT `[table_name]_fk_[field_name]`
FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);