Jeśli utworzę ograniczenie klucza obcego dla tabeli „zdjęcia” w phpmyadmin, później zobaczę, że ograniczenie to nosi nazwę „photos_ibfk_1”, a następne ograniczenie nazywa się „photos_ibfk_2” itd. Z tego zebrałem, że [tablename] _ibfk_constraintIndex jest Konwencja dotycząca ograniczeń DB w MySQL. Czy to jest poprawne? Co oznacza skrót IBFK?
mysql
innodb
foreign-key
constraint
Peter Nore
źródło
źródło
Odpowiedzi:
klucz obcy innodb. To tylko konwencja nazewnictwa krótkich dłoni. Możesz to nazwać asdfqwerty, a nazwa nadal będzie działać.
źródło
Chociaż nazwy kluczy obcych mogą być dowolne, dobrą praktyką jest przestrzeganie konwencji umieszczania nazwy tabeli na pierwszym miejscu.
Najważniejszym powodem tego jest to, że nazwy kluczy obcych muszą być unikalne w bazie danych (w przeciwieństwie do nazw indeksów, które muszą być unikalne w obrębie każdej tabeli). Zgodnie z tą konwencją nazwy kluczy obcych muszą być unikalne w obrębie każdej tabeli.
Osobiście korzystam z konwencji
[table_name]_fk_[field_name]
.Aby nazwać swoje klucze obce, będziesz musiał jawnie przeliterować ograniczenie w tabeli, a nie tylko klucz obcy.
Prosta metoda (spowoduje automatyczne nazwanie
[table_name]_ibfk_[index]
):Jawna metoda (spowoduje
[table_name]_fk_[field_name]
):źródło