Rumah  >  Artikel  >  pangkalan data  >  Bolehkah Kekangan Utama Asing Merujuk Berbilang Jadual?

Bolehkah Kekangan Utama Asing Merujuk Berbilang Jadual?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 05:42:02620semak imbas

Can Foreign Key Constraints Reference Multiple Tables?

Kekangan Utama Asing Polimorfik: Merujuk Berbilang Jadual

Dalam bidang reka bentuk pangkalan data, kekangan kunci asing mewujudkan hubungan antara jadual, memastikan integriti data dengan menyambungkan rekod merentas jadual. Secara tradisinya, kunci asing menghala ke satu jadual tertentu. Walau bagaimanapun, persoalan timbul: adakah mungkin untuk mencipta kunci asing yang merujuk salah satu daripada berbilang jadual?

Untuk memahami konsep ini, pertimbangkan hubungan polimorfik antara jadual dan set jadual. Dalam senario sedemikian, jadual boleh dikaitkan dengan mana-mana satu kumpulan jadual. Sebagai contoh, pertimbangkan tiga jadual:

  • imej: person_id, person_type
  • orang bawahan: id, col1, col2...col9
  • produk: id, colA, colB...colZ

Dalam contoh ini, jika lajur person_type dalam jadual imej mengandungi "orang bawahan", maka person_id harus menjadi kunci asing yang merujuk subordinat.id. Begitu juga, jika person_type ialah "produk", maka person_id harus merujuk kepada products.id.

Jawapan: Tidak Mungkin untuk Kunci Asing Tunggal

Selepas pemeriksaan teliti, ia menjadi jelas bahawa tidak mungkin untuk mempunyai kekangan kunci asing tunggal yang merujuk berbilang jadual. Kekangan kunci asing sentiasa menyasarkan satu jadual induk dengan tepat. Oleh itu, jika medan memerlukan rujukan berbilang jadual berdasarkan beberapa syarat, penyelesaian alternatif mesti diterokai.

Sumber Tambahan untuk Polimorfisme

Untuk pemahaman yang lebih mendalam tentang persatuan polimorfik, pertimbangkan untuk meneroka sumber berikut:

  • Pembentangan: Model Berorientasikan Objek Praktikal dalam SQL
  • Buku: Antipatterns SQL, Jilid 1: Mengelakkan Perangkap Pengaturcaraan Pangkalan Data

Atas ialah kandungan terperinci Bolehkah Kekangan Utama Asing Merujuk Berbilang Jadual?. 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