Se eu criar uma restrição de chave estrangeira para a tabela 'photos' no phpmyadmin, mais tarde vejo que a restrição é denominada 'photos_ibfk_1' e a próxima restrição é chamada 'photos_ibfk_2', etc. A partir disso, reuni que a convenção para restrições de banco de dados no MySQL. Isso está correto? IBFK de quê?
mysql
innodb
foreign-key
constraint
Peter Nore
fonte
fonte
Respostas:
chave estrangeira innodb. É apenas uma convenção de nomes curtos. Você poderia chamá-lo de asdfqwerty e o nome ainda funcionaria.
fonte
Embora os nomes das chaves estrangeiras possam ser qualquer coisa, é realmente uma boa prática seguir a convenção de colocar o nome da tabela em primeiro lugar.
A razão mais importante para isso é que os nomes de chaves estrangeiras devem ser exclusivos em um banco de dados (ao contrário dos nomes de índice, que devem ser únicos em cada tabela). Portanto, seguindo esta convenção, os nomes de chaves estrangeiras precisam ser exclusivos em cada tabela.
Pessoalmente, uso a convenção
[table_name]_fk_[field_name]
.Para nomear suas chaves estrangeiras, você precisará explicitamente explicitar a restrição na tabela, em vez de apenas a chave estrangeira.
Método simples (nomeação automática, resultará em
[table_name]_ibfk_[index]
):Método explícito (resultará em
[table_name]_fk_[field_name]
):fonte