Rumah > pangkalan data > tutorial mysql > Adakah Kunci Asing kepada Berbilang Jadual Mungkin dalam Pangkalan Data Hubungan?

Adakah Kunci Asing kepada Berbilang Jadual Mungkin dalam Pangkalan Data Hubungan?

DDD
Lepaskan: 2024-10-24 03:58:30
asal
831 orang telah melayarinya

Is a Foreign Key to Multiple Tables Possible in Relational Databases?

Kunci Asing kepada Satu daripada Pelbagai Jadual: Adakah Mungkin?

Dalam pangkalan data hubungan, kunci asing digunakan untuk mewujudkan hubungan antara jadual. Biasanya, kunci asing dalam satu jadual menunjuk ke kunci utama dalam jadual lain. Walau bagaimanapun, persoalan timbul: bolehkah kunci asing merujuk kepada satu daripada berbilang jadual?

Jawapannya: Tidak

Kekangan kunci asing sentiasa merujuk tepat satu jadual induk. Ini bermakna tidak mungkin untuk menentukan kunci asing yang menunjuk kepada salah satu daripada beberapa jadual yang mungkin. Tingkah laku ini adalah sama dalam kedua-dua MySQL dan PostgreSQL.

Implikasi untuk Perhubungan Polimorfik

Perhubungan polimorfik ialah apabila jadual mungkin mempunyai hubungan dengan salah satu daripada beberapa jadual lain. Dalam contoh yang diberikan, jadual "imej" mempunyai hubungan dengan salah satu daripada dua jadual: "orang bawahan" atau "produk."

Dalam kes sedemikian, tidak mungkin untuk mencipta kunci asing secara langsung yang menghala ke sama ada "orang bawahan" atau "produk." Sebaliknya, jadual gabungan mesti ditakrifkan secara eksplisit untuk mewujudkan perhubungan. Jadual gabungan mengandungi kunci asing kepada kedua-dua "orang bawahan" dan "produk", dan jadual "imej" kemudiannya mempunyai kunci asing yang merujuk jadual gabungan.

Sumber Tambahan

Untuk penerokaan lanjut mengenai topik ini, pertimbangkan sumber berikut:

Atas ialah kandungan terperinci Adakah Kunci Asing kepada Berbilang Jadual Mungkin dalam Pangkalan Data Hubungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan