Aunque los nombres de claves externas pueden ser cualquier cosa, en realidad es una buena práctica seguir la convención de poner primero el nombre de la tabla.
La razón más importante para esto es que los nombres de claves externas deben ser únicos dentro de una base de datos (al contrario de los nombres de índice, que solo deben ser únicos dentro de cada tabla). Por lo tanto, siguiendo esta convención, los nombres de clave externa solo tienen que ser únicos dentro de cada tabla.
Personalmente, uso la convención [table_name]_fk_[field_name]
.
Para nombrar sus claves foráneas, deberá deletrear explícitamente la restricción en la tabla, en lugar de solo la clave foránea.
Método simple (la denominación automática dará como resultado [table_name]_ibfk_[index]
):
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
Método explícito (resultará en [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]`);