Rumah >pangkalan data >tutorial mysql >Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama dalam Jadual Berbeza, dan Apakah Alternatif Terbaik?

Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama dalam Jadual Berbeza, dan Apakah Alternatif Terbaik?

DDD
DDDasal
2025-01-11 08:16:41307semak imbas

Can a Foreign Key Reference Multiple Primary Keys in Different Tables, and What's the Best Alternative?

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:

  • Ia memudahkan pengurusan data dengan menyediakan satu titik rujukan kepada pekerja rujukan.
  • Ia mengelakkan masalah kunci asing yang merujuk berbilang kunci utama, yang boleh membawa kepada ketidakkonsistenan dan isu integriti data.
  • Ia membolehkan fleksibiliti dan kebolehlanjutan, dengan keupayaan untuk menambah jenis pekerja lain tanpa mengubah jadual 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn