В MySQL няма нужда да се дава символно име на ограниченията на външния ключ. Ако не е дадено име, InnoDB създава уникално име автоматично.
Във всеки случай, това е конвенцията, която използвам:
fk_[referencing table name]_[referenced table name]_[referencing field name]
Пример:
CREATE TABLE users(
user_id int,
name varchar(100)
);
CREATE TABLE messages(
message_id int,
user_id int
);
ALTER TABLE messages ADD CONSTRAINT fk_messages_users_user_id
FOREIGN KEY (user_id) REFERENCES users(user_id);
Опитвам се да се придържам към същите имена на полета в таблиците за препращане и препратки, както в user_id
в горния пример. Когато това не е практично, добавям и името на референтното поле към името на външния ключ.
Тази конвенция за именуване ми позволява да „отгатна“ символичното име само като гледам дефинициите на таблицата и освен това гарантира уникални имена.