Хоча іноземні ключові імена можуть бути будь-якими, але насправді є хорошою практикою дотримуватися конвенції про перше ім'я таблиці.
Найважливішою причиною цього є те, що імена іноземних ключів повинні бути унікальними в базі даних (на відміну від імен індексів, які повинні бути унікальними лише в межах кожної таблиці). Отже, дотримуючись цієї конвенції, імена іноземних ключів повинні бути унікальними лише в межах кожної таблиці.
Особисто я використовую конвенцію [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]`);