No MySQL, não há necessidade de dar um nome simbólico às restrições de chave estrangeira. Se um nome não for fornecido, o InnoDB cria um nome exclusivo automaticamente.
De qualquer forma, esta é a convenção que eu uso:
fk_[referencing table name]_[referenced table name]_[referencing field name]
Exemplo:
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);
Eu tento ficar com os mesmos nomes de campo nas tabelas de referência e referenciadas, como em
user_id
no exemplo acima. Quando isso não for prático, também acrescento o nome do campo referenciado ao nome da chave estrangeira. Essa convenção de nomenclatura me permite "adivinhar" o nome simbólico apenas observando as definições da tabela e, além disso, também garante nomes exclusivos.