Si je crée une contrainte de clé étrangère pour la table 'photos' dans phpmyadmin, je vois plus tard que la contrainte est nommée 'photos_ibfk_1', et la contrainte suivante est appelée 'photos_ibfk_2', etc. la convention pour les contraintes de base de données dans MySQL. Est-ce correct? Que signifie IBFK?
mysql
innodb
foreign-key
constraint
Peter Nore
la source
la source
Réponses:
clé étrangère innodb. C'est juste une convention de dénomination courte. Vous pourriez l'appeler asdfqwerty et le nom fonctionnerait toujours.
la source
Bien que les noms de clés étrangères puissent être n'importe quoi, c'est en fait une bonne pratique de suivre la convention de mettre le nom de la table en premier.
La raison la plus importante en est que les noms de clés étrangères doivent être uniques dans une base de données (contrairement aux noms d'index, qui ne doivent être uniques que dans chaque table). Ainsi, en suivant cette convention, les noms de clés étrangères doivent uniquement être uniques dans chaque table.
Personnellement, j'utilise la convention
[table_name]_fk_[field_name]
.Afin de nommer vos clés étrangères, vous devrez explicitement énoncer la contrainte sur la table, au lieu de simplement la clé étrangère.
Méthode simple (la dénomination automatique se traduira par
[table_name]_ibfk_[index]
):Méthode explicite (entraînera
[table_name]_fk_[field_name]
):la source