แม้ว่าชื่อคีย์ต่างประเทศสามารถเป็นอะไรก็ได้จริง ๆ แล้วมันเป็นการปฏิบัติที่ดีในการทำตามแบบแผนของการวางชื่อตารางก่อน
เหตุผลที่สำคัญที่สุดสำหรับสิ่งนี้คือชื่อคีย์ต่างประเทศจะต้องไม่ซ้ำกันในฐานข้อมูล (ตรงกันข้ามกับชื่อดัชนีซึ่งจะต้องไม่ซ้ำกันภายในแต่ละตาราง) ดังนั้นตามการประชุมนี้ชื่อกุญแจต่างประเทศจะต้องไม่ซ้ำกันภายในแต่ละตาราง
[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]`);