Wenn ich in phpmyadmin eine Fremdschlüsseleinschränkung für die Tabelle 'photos' erstelle, sehe ich später, dass die Einschränkung 'photos_ibfk_1' heißt und die nächste Einschränkung 'photos_ibfk_2' usw. lautet die Konvention für DB-Einschränkungen in MySQL. Ist das richtig? Wofür steht IBFK?
mysql
innodb
foreign-key
constraint
Peter Nore
quelle
quelle
Antworten:
Innodb Fremdschlüssel. Es ist nur eine kurze Namenskonvention. Man könnte es als pdfqwerty bezeichnen und der Name würde immer noch funktionieren.
quelle
Obwohl Fremdschlüsselnamen alles sein können, ist es eine gute Praxis, die Konvention zu befolgen, dass der Tabellenname an erster Stelle steht.
Der wichtigste Grund dafür ist, dass Fremdschlüsselnamen in einer Datenbank eindeutig sein müssen (im Gegensatz zu Indexnamen, die nur in jeder Tabelle eindeutig sein dürfen). Entsprechend dieser Konvention müssen Fremdschlüsselnamen nur in jeder Tabelle eindeutig sein.
Persönlich verwende ich die Konvention
[table_name]_fk_[field_name]
.Um Ihre Fremdschlüssel zu benennen, müssen Sie die Einschränkung für die Tabelle explizit formulieren und nicht nur den Fremdschlüssel.
Einfache Methode (automatische Benennung, ergibt
[table_name]_ibfk_[index]
):Explizite Methode (führt zu
[table_name]_fk_[field_name]
):quelle