Rumah >pangkalan data >tutorial mysql >Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama dalam Jadual Berbeza, dan Apakah Alternatif Terbaik?
Rujukan kunci asing meja silang
Artikel ini meneroka kemungkinan mencipta kunci asing dalam satu jadual untuk merujuk kunci utama berbilang jadual lain. Secara khusus, ia berkisar pada senario yang dikemukakan oleh penyoal.
Tafsiran adegan
Penyoal mempunyai dua jadual, employees_ce
dan employees_sn
, setiap satu dengan lajur kunci utamanya sendiri. Mereka juga mempunyai jadual ketiga yang dipanggil deductions
yang memerlukan kunci asing untuk merujuk kunci utama employees_ce
dan employees_sn
. Contoh yang diberikan menggambarkan lagi keadaan ini:
<code>employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess</code>
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
Penyelesaian
Walaupun matlamat penyoal boleh dicapai secara teknikal, ia bukanlah amalan terbaik dalam reka bentuk pangkalan data. Kaedah yang disyorkan adalah untuk menentukan jadual perantaraan untuk memautkan dua jadual, contohnya:
<code>employees ---------------- empid name employees_types --------------- empid type khce1 ce khsn1 sn</code>
Dengan persediaan ini, jadual deductions
boleh mempunyai kunci asing yang merujuk kepada lajur employees
dalam jadual empid
, sekali gus mewujudkan hubungan mudah antara tiga jadual.
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
Kelebihan kaedah jadual perantaraan
Kaedah jadual perantaraan memberikan kelebihan berikut:
deductions
. Atas ialah kandungan terperinci Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama dalam Jadual Berbeza, dan Apakah Alternatif Terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!