Rumah >pangkalan data >tutorial mysql >Bolehkah Kunci Asing Merujuk Indeks Bukan Unik dalam MySQL?
Kekangan kunci asing dan indeks bukan unik dalam MySQL
Walaupun kunci asing secara amnya dianggap mewujudkan hubungan satu dengan satu, dalam beberapa kes hubungan ini tidak dikuatkuasakan dengan ketat. Tingkah laku ini adalah biasa dalam senario tertentu, terutamanya apabila menggunakan MySQL.
Dalam MySQL, kekangan kunci asing boleh merujuk indeks bukan unik dalam jadual yang dirujuk. Ini bermakna satu baris dalam jadual rujukan boleh memadankan berbilang baris dalam jadual rujukan berdasarkan lajur indeks.
Penyimpangan yang kelihatan daripada prinsip satu sama satu ini tidak melemahkan tujuan kekangan utama asing. Ia hanya membenarkan tafsiran yang berbeza tentang keunikan. Daripada memerlukan padanan tepat, pangkalan data menganggapnya mencukupi bahawa sekurang-kurangnya satu rekod sepadan dengan nilai kunci asing.
Walau bagaimanapun, pastikan anda mempertimbangkan kesan penggunaan kunci asing pada lajur bukan unik. Tingkah laku "ON DELETE CASCADE" menjadi kurang jelas dalam kes ini kerana mungkin terdapat lebih daripada satu rekod sepadan yang perlu dipadamkan.
Untuk mengelakkan kemungkinan kekeliruan dan kesan yang tidak diingini, adalah amat disyorkan untuk memetik kekunci UNIK (termasuk PRIMER) dan BUKAN NULL apabila mentakrifkan kekangan kunci asing. Ini memastikan tingkah laku yang tidak jelas dan mengelakkan kekaburan dalam perhubungan data.
Atas ialah kandungan terperinci Bolehkah Kunci Asing Merujuk Indeks Bukan Unik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!