Rumah  >  Artikel  >  pangkalan data  >  Bolehkah Rujukan Kunci Asing Berbilang Jadual dalam Persatuan Polimorfik?

Bolehkah Rujukan Kunci Asing Berbilang Jadual dalam Persatuan Polimorfik?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 02:39:29924semak imbas

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

Kunci Asing Polimorfik: Bolehkah Kunci Asing Rujukan Berbilang Jadual?

Konsep kunci asing dalam pangkalan data hubungan biasanya melibatkan penentuan sasaran yang tepat jadual yang harus ditunjukkan oleh lajur rujukan. Walau bagaimanapun, apabila berurusan dengan persatuan polimorfik, di mana jadual mempunyai hubungan dengan berbilang jadual lain dalam satu set, persoalan timbul: adakah mungkin untuk mempunyai kunci asing yang boleh merujuk mana-mana satu jadual tersebut?

Jawapannya: Tidak

Dalam kedua-dua MySQL dan PostgreSQL, kekangan kunci asing hanya boleh merujuk jadual induk tunggal. Kekangan ini memastikan integriti data dengan mengekalkan hubungan yang jelas antara baris rujukan dan baris yang dirujuk dalam jadual induk.

Alternatif untuk Persatuan Polimorfik

Memandangkan kunci asing tidak boleh terus menunjuk kepada berbilang jadual, penyelesaian alternatif diperlukan untuk memodelkan persatuan polimorfik:

  • Warisan Bergabung: Buat satu jadual yang mengandungi semua lajur daripada jadual anak dan lajur diskriminator untuk mengenal pasti jadual yang dimiliki setiap baris.
  • Hierarki Jadual Setiap Kelas: Cipta jadual berasingan untuk setiap jadual anak dan wujudkan perhubungan di antara mereka melalui warisan.
  • Jenis Kesatuan: Gunakan satu lajur yang boleh memuatkan nilai data daripada domain yang berbeza, membenarkannya merujuk berbilang jadual anak.

Sumber Tambahan

Untuk maklumat lanjut tentang perkaitan polimorfik dan penyelesaiannya, rujuk sumber berikut:

  • Model Berorientasikan Objek Praktikal dalam SQL
  • Antipattern SQL, Jilid 1: Menghindari Perangkap Pengaturcaraan Pangkalan Data

Atas ialah kandungan terperinci Bolehkah Rujukan Kunci Asing Berbilang Jadual dalam Persatuan Polimorfik?. 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