Saya punya tabel dengan kunci utama komposit (terdiri dari 4 kolom) yang digunakan untuk memastikan tidak ada duplikat dimasukkan ke dalam tabel. Saya sekarang membutuhkan tabel baru yang perlu merujuk kunci dalam tabel ini sebagai kunci asing.
Pertanyaan saya adalah pendekatan mana yang lebih efisien untuk kecepatan pencarian:
1) Apakah saya membuat tabel baru termasuk semua 4 kolom dan referensi semuanya dalam kunci asing.
atau
2) Apakah saya membuat kolom identitas baru di tabel Kunci Utama dan menggunakan ini sebagai kunci asing di tabel baru.
Basis data ini diharapkan menyimpan jumlah data yang sangat besar, jadi saya telah membangunnya sampai sekarang dengan tujuan untuk meminimalkan jumlah data yang disimpan di setiap tabel. Dengan mengingat hal ini, opsi 2 akan menjadi pendekatan terbaik karena saya akan menyimpan 2 kolom int dan kolom datetime untuk setiap baris, tetapi saya ingin menghindari peningkatan waktu pencarian jika tidak perlu.
INT IDENTITY
) dalam kasus seperti itu - membuat referensi dan bergabung dengan tabel itu jadi sangat mudah. Untuk menghindari duplikat, berikan batasan UNIK pada empat kolom. Juga: kunci primer sempit jauh lebih baik karena alasan kinerja (jika digunakan sebagai kunci pengelompokan)