Meskipun nama kunci asing dapat berupa apa saja, sebenarnya merupakan praktik yang baik untuk mengikuti kebiasaan meletakkan nama tabel terlebih dahulu.
Alasan paling penting untuk ini adalah bahwa nama kunci asing harus unik dalam database (berlawanan dengan nama indeks, yang hanya harus unik dalam setiap tabel). Jadi, dengan mengikuti konvensi ini, nama kunci asing hanya harus unik dalam setiap tabel.
Secara pribadi, saya menggunakan konvensi [table_name]_fk_[field_name]
.
Untuk memberi nama kunci asing Anda, Anda harus secara eksplisit menjabarkan batasan pada tabel, bukan hanya kunci asing.
Metode sederhana (penamaan otomatis, akan menghasilkan [table_name]_ibfk_[index]
):
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
Metode eksplisit (akan menghasilkan [table_name]_fk_[field_name]
):
ALTER TABLE `[table_name]`
ADD CONSTRAINT `[table_name]_fk_[field_name]`
FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);