Rumah > pangkalan data > tutorial mysql > Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama Secara serentak?

Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama Secara serentak?

Barbara Streisand
Lepaskan: 2025-01-11 10:21:43
asal
124 orang telah melayarinya

Can a Foreign Key Reference Multiple Primary Keys Simultaneously?

Mengendalikan Perhubungan Utama Asing Kompleks dalam Reka Bentuk Pangkalan Data

Senario

Contoh ini meneroka cabaran reka bentuk pangkalan data biasa: mewujudkan hubungan kunci asing yang mana satu jadual perlu merujuk kunci utama daripada berbilang jadual lain. Senario khusus melibatkan jadual deductions yang perlu dipautkan ke kedua-dua jadual employees_ce dan employees_sn.

Masalah dan Penyelesaiannya

Persoalannya ialah sama ada kunci asing dalam deductions boleh merujuk terus kekunci primer dalam kedua-dua employees_ce dan employees_sn secara serentak. Jawapannya ialah: tidak secara langsung, dalam pangkalan data hubungan standard. Satu kunci asing hanya boleh merujuk satu kunci utama.

Penyelesaian yang dicadangkan memanfaatkan model warisan yang tersusun dengan baik untuk menyelesaikan masalah ini.

Pendekatan Berasaskan Warisan

Jadual employees, employees_ce dan employees_sn mewakili hierarki warisan. employees ialah jadual asas, dengan employees_ce dan employees_sn sebagai jadual khusus yang diwarisi daripadanya.

Struktur Pangkalan Data:

<code class="language-sql">employees (id INT PRIMARY KEY, name VARCHAR(255))
employees_ce (id INT PRIMARY KEY, ce_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
employees_sn (id INT PRIMARY KEY, sn_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))</code>
Salin selepas log masuk

Penyelesaian:

Daripada pautan terus ke employees_ce dan employees_sn, jadual deductions hendaklah merujuk kepada jadual induk biasa, employees:

<code class="language-sql">deductions (id INT PRIMARY KEY, employee_id INT, deduction_amount DECIMAL(10,2), ..., FOREIGN KEY (employee_id) REFERENCES employees(id))</code>
Salin selepas log masuk

Pendekatan ini memastikan integriti rujukan dan mengelakkan lebihan. employee_id dalam deductions memaut ke rekod pekerja dalam employees, tidak kira sama ada pekerja tersebut mempunyai maklumat tambahan dalam employees_ce atau employees_sn. Reka bentuk ini mengurus perhubungan dengan cekap dan mengekalkan ketekalan data.

Atas ialah kandungan terperinci Bolehkah Kunci Asing Rujukan Berbilang Kunci Utama Secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan