2012-11-12 10 views
6

Il nome dell'indice MySQL e il nome della chiave esterna devono essere diversi per le diverse tabelle?Il nome dell'indice MySQL e il nome della chiave esterna devono essere diversi per le diverse tabelle?

Ad esempio,

due tabelle entrambi hanno lo stesso campo (profile_id) che sono appartenenti ad una terza tabella (profili). Quindi voglio indicizzare profile_id e vincolarlo come chiave esterna.

Il nome dell'indice può essere denominato "profile_id_idx" in entrambe le tabelle?

E "profile_id_fk" come nome di chiave esterna per entrambi?

+0

No, questo è quello che le chiavi esterne sono per –

+1

Anche se ciò ha funzionato, perché rischiare? Dagli semplicemente nomi diversi e fallo con esso – mvp

risposta

6

I nomi delle chiavi esterne devono essere univoci su tutte le tabelle in tutti i database. I nomi degli indici possono essere riutilizzati in diverse tabelle.

+0

Quindi, assegnare esplicitamente nomi a vincoli di chiavi esterne porta a conflitti di nomi o richiede il prefisso da database e tabella ('db_tbl_col_fk') che causa la duplicazione del codice. –

Problemi correlati