Jika itu terserah saya ...
Anda harus memenuhi persyaratan database dan aplikasi Anda.
Menambahkan bilangan bulat penambahan otomatis atau kolom id panjang ke setiap tabel untuk berfungsi sebagai kunci utama menangani persyaratan basis data.
Anda kemudian akan menambahkan setidaknya satu indeks unik lainnya ke tabel untuk digunakan oleh aplikasi Anda. Ini akan menjadi indeks pada employee_id, atau account_id, atau customer_id, dll. Jika memungkinkan, indeks ini tidak boleh menjadi indeks komposit.
Saya lebih suka indeks pada beberapa bidang secara individual daripada indeks komposit. Basis data akan menggunakan indeks bidang tunggal setiap kali klausa mana menyertakan bidang itu, tetapi hanya akan menggunakan komposit saat Anda memberikan bidang dalam urutan yang benar - artinya itu tidak dapat menggunakan bidang kedua dalam indeks komposit kecuali jika Anda memberikan baik yang pertama dan kedua di mana Anda klausa.
Saya semua menggunakan indeks tipe Fungsi yang dihitung atau - dan akan merekomendasikan menggunakannya lebih dari indeks komposit. Itu membuatnya sangat mudah untuk menggunakan indeks fungsi dengan menggunakan fungsi yang sama di klausa tempat Anda.
Ini menangani persyaratan aplikasi Anda.
Sangat mungkin bahwa indeks non-primer lainnya sebenarnya memetakan nilai kunci indeks itu ke nilai kunci primer, bukan rowid (). Ini memungkinkan operasi penyortiran fisik dan penghapusan terjadi tanpa harus membuat ulang indeks ini.