Kekangan kunci asing pada indeks bukan unik dalam reka bentuk pangkalan data
Dalam reka bentuk pangkalan data, kekangan kunci asing mewujudkan hubungan antara dua jadual, memastikan baris dalam satu jadual merujuk kepada baris yang sah dalam jadual lain. Walau bagaimanapun, diterima umum bahawa kunci asing mesti merujuk indeks unik, bermakna terdapat hubungan satu dengan satu antara baris.
Walau bagaimanapun, dalam sistem pengurusan pangkalan data tertentu seperti MySQL, kunci asing boleh merujuk indeks bukan unik. Ini menyimpang daripada tafsiran SQL standard.
Menurut dokumentasi MySQL, kunci asing boleh merujuk kekunci bukan unik, yang merupakan lanjutan kepada standard. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menggunakan lajur bukan unik untuk rujukan kunci asing boleh menyebabkan masalah sebenar.
Sebagai contoh, jika lajur jadual yang dirujuk mengandungi nilai pendua dan kekangan "ON DELETE CASCADE" digunakan, tingkah laku pemadaman berlatarkan menjadi samar-samar. Oleh itu, adalah amat disyorkan untuk menggunakan kunci asing yang merujuk kepada kekunci unik (termasuk kunci utama) dan bukan nol.
Ringkasnya, walaupun mungkin untuk mencipta kunci asing pada indeks bukan unik dalam sesetengah sistem pangkalan data, adalah disyorkan untuk mengelak daripada berbuat demikian kerana kemungkinan ketidakkonsistenan dan kesamaran dalam penyelenggaraan integriti data.
Atas ialah kandungan terperinci Bolehkah Kunci Asing Merujuk Indeks Bukan Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!