Integriti Rujukan Subjenis dengan Kekangan
Subjenis Eksklusif
- Laksanakan lajur "Diskriminator" dalam jenis asas untuk menunjukkan baris subjenis yang wujud untuknya.
- Gunakan KEKANGAN SEMAKAN SQL untuk memastikan julat Diskriminator yang sah (cth., untuk Sensor: IN ("B", "C", "D")).
- PK jenis asas memastikan keunikan dan Diskriminator menghalang pendua baris subjenis.
- KEKANGAN SEMAK dalam subjenis memanggil Fungsi Ditentukan Pengguna (UDF) untuk mengesahkan kewujudan Diskriminator PK dalam jenis asas.
- Ini memastikan hanya subjenis yang sah wujud untuk setiap PK.
- Kuatkuasakan peraturan "setiap jenis asas mesti mempunyai sekurang-kurangnya satu subjenis" dengan transaksional kod.
Bukan Eksklusif Subjenis
- Tiada Diskriminator diperlukan.
- Kewujudan subjenis disahkan dengan semakan kewujudan pada jadual subjenis.
- KUNCI PRIMER biasa, KUNCI ASING, dan KEKANGAN SEMAK Julat menyokong Non-eksklusif secukupnya Subjenis.
Mencegah Kemas Kini Diskriminator Tidak Sah dalam Subjenis Eksklusif (ditujukan sebagai tindak balas kepada ulasan)
- Gunakan Standard Seni Bina Terbuka dengan Transaksi ACID SQL.
- Larang teruskan kemas kini SQL ke pangkalan data.
- Kuatkuasakan sisipan subjenis jenis asas dalam satu Transaksi.
- PADAMkan subjenis sebelumnya secara eksplisit sebelum mengemas kini Diskriminatornya.
- Berikan kebenaran EXEC hanya kepada PERANAN pengguna untuk melaksanakan Transaksi ini.
Ini memastikan lajur Diskriminator dilindungi daripada kemas kini yang tidak sah, mengekalkan integriti pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Integriti Rujukan dengan Subjenis Eksklusif dan Bukan Eksklusif dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!