MySQL's ON DELETE CASCADE: Memadam Komponen Semasa Memelihara Rekod Jenis
MySQL ON DELETE CASCADE
menawarkan pemadaman automatik rekod bergantung apabila rekod berkaitan dialih keluar. Walau bagaimanapun, penggunaannya memerlukan pertimbangan teliti perhubungan jadual.
Pertimbangkan komponen penstrukturan pangkalan data, setiap satu dipautkan kepada jenis tertentu. Matlamat: padam semua komponen yang dikaitkan dengan jenis tanpa memadamkan jenis itu sendiri. Adakah ini boleh dicapai?
Pendekatannya
Mencapai ini melibatkan penggunaan strategik ON DELETE CASCADE
dalam struktur jadual yang jelas. Penyelesaiannya adalah seperti berikut:
<code class="language-sql">CREATE TABLE `components` ( `id` int(10) unsigned NOT NULL auto_increment, `typeId` int(10) unsigned NOT NULL, `moreInfo` VARCHAR(32), -- etc PRIMARY KEY (`id`), KEY `type` (`typeId`), CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`) REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE );</code>
Penciptaan Jadual Komponen: Jadual ini menyimpan butiran komponen dan typeId
yang sepadan.
Pelaksanaan Kunci Asing: Kekangan kunci asing (myForeignKey
) menghubungkan lajur components
jadual typeId
ke lajur types
jadual id
.
ON DELETE CASCADE Spesifikasi: Elemen penting: ON DELETE CASCADE
. Apabila rekod dalam jadual types
dipadamkan (dengan mengandaikan kedua-dua jadual menggunakan enjin storan InnoDB), semua rekod berkaitan dalam perkongsian jadual components
yang typeId
dipadamkan secara automatik.
Pertimbangan Utama:
InnoDB adalah penting. MyISAM, kekurangan sokongan kunci asing, menjadikan pendekatan ini tidak berkesan.
Atas ialah kandungan terperinci Bolehkah MySQL ON DELETE CASCADE Memadam Rekod Komponen Secara Automatik Semasa Memelihara Rekod Jenis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!