Pemadaman Baris Berbilang Jadual: Mengekalkan Integriti Data
Memadamkan baris daripada jadual pangkalan data yang saling berkaitan memerlukan pertimbangan yang teliti terhadap integriti data. Ini benar terutamanya apabila berurusan dengan jadual berkaitan seperti messages
dan usersmessages
. Hanya memadamkan daripada satu jadual tanpa menangani entri berkaitan dalam yang lain boleh membawa kepada ketidakkonsistenan.
Percubaan awal menggunakan pertanyaan seperti:
<code class="language-sql">DELETE FROM messages LEFT JOIN usersmessages USING(messageid) WHERE messageid='1';</code>
dan
<code class="language-sql">DELETE FROM messages, usersmessages WHERE messages.messageid = usersmessages.messageid AND messageid='1';</code>
terbukti tidak berkesan kerana sasaran pemadaman yang tidak jelas. Syarat JOIN
sahaja tidak mencukupi untuk mengarahkan pemadaman.
Penyelesaian yang lebih berkesan menggunakan INNER JOIN
untuk menyatakan secara eksplisit skop pemadaman:
<code class="language-sql">DELETE messages, usersmessages FROM messages INNER JOIN usersmessages WHERE messages.messageid = usersmessages.messageid AND messages.messageid = '1';</code>
Pertanyaan ini memastikan bahawa hanya baris dengan nilai messageid
yang sepadan dalam kedua-dua jadual dipadamkan, mengekalkan ketekalan data.
Alternatif yang kurang cekap, tetapi sama sah, melibatkan pernyataan DELETE
berasingan:
<code class="language-sql">DELETE FROM messages WHERE messageid = '1'; DELETE FROM usersmessages WHERE messageid = '1';</code>
Walaupun berfungsi, kaedah ini kurang dioptimumkan berbanding pertanyaan berasaskan JOIN
tunggal.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris dengan Cekap daripada Pelbagai Jadual Pangkalan Data Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!