2012-11-12 6 views
6

MySQL-Indexname und Fremdschlüsselname müssen für verschiedene Tabellen unterschiedlich sein?MySQL-Indexname und Fremdschlüsselname müssen für verschiedene Tabellen unterschiedlich sein?

Zum Beispiel

Zwei Tabellen haben beide das gleiche Feld (profile_id), die an eine dritte Tabelle (Profile) sind gehören. Daher möchte ich die profile_id indizieren und als Fremdschlüssel einschränken.

Konnte der Indexname in beiden Tabellen "profile_id_idx" genannt werden?

Und "profile_id_fk" als Name des Fremdschlüssels für beide auch?

+0

Nein, das sind Fremdschlüssel für –

+1

Auch wenn das funktioniert, warum ein Risiko eingehen? Geben Sie ihm einfach andere Namen und machen Sie damit fertig – mvp

Antwort

6

Namen von Fremdschlüsseln müssen in allen Tabellen in allen Datenbanken eindeutig sein. Indexnamen können in verschiedenen Tabellen wiederverwendet werden.

+0

Das explizite Benennen von Fremdschlüsseleinschränkungen führt entweder zu Namenskonflikten oder erfordert das Voranstellen durch die Datenbank und die Tabelle ('db_tbl_col_fk'), was eine Codeverdopplung verursacht. –

Verwandte Themen