Dalam grup pengembang kami, kami memiliki perdebatan sengit mengenai konvensi penamaan untuk Kunci Utama dan Kunci Asing. Pada dasarnya ada dua aliran pemikiran dalam kelompok kami:
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
atau
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
Saya memilih untuk tidak menduplikasi nama tabel di salah satu kolom (Jadi saya lebih suka opsi 1 di atas). Secara konseptual, ini konsisten dengan banyak praktik yang direkomendasikan dalam bahasa lain, di mana Anda tidak menggunakan nama objek dalam nama propertinya. Saya pikir penamaan kunci asing EmployeeID
(atau Employee_ID
mungkin lebih baik) memberitahu pembaca bahwa itu adalah ID
kolom Employee
Tabel.
Beberapa yang lain lebih memilih opsi 2 di mana Anda memberi nama kunci utama diawali dengan nama tabel sehingga nama kolomnya sama di seluruh database. Saya mengerti hal itu, tetapi Anda sekarang tidak dapat secara visual membedakan kunci utama dari kunci asing.
Juga, saya pikir itu berlebihan untuk memiliki nama tabel di nama kolom, karena jika Anda menganggap tabel sebagai entitas dan kolom sebagai properti atau atribut dari entitas itu, Anda menganggapnya sebagai atribut ID dari Employee
, bukan yang EmployeeID
atribut seorang karyawan. Aku tidak pergi dan meminta rekan kerja saya apa nya PersonAge
atau PersonGender
yang. Saya bertanya padanya berapa Umurnya.
Jadi seperti yang saya katakan, ini adalah debat yang sengit dan kami terus-menerus membahasnya. Saya tertarik untuk mendapatkan perspektif baru.