Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengelak Ralat 'Kitaran atau Laluan Lata Berbilang' Semasa Menentukan Kekangan Utama Asing?
Reka Bentuk Pangkalan Data: Menyelesaikan Kitaran Kekangan Utama Asing dan Laluan Lata Berbilang
Reka bentuk pangkalan data selalunya melibatkan penciptaan kekangan utama asing untuk menguatkuasakan integriti rujukan. Walau bagaimanapun, kekangan yang direka bentuk dengan buruk boleh menyebabkan ralat seperti "Memperkenalkan kekangan KUNCI ASING ... boleh menyebabkan kitaran atau berbilang laluan lata." Ralat ini timbul apabila memadam atau mengemas kini data dalam satu jadual akan mencetuskan tindakan melata dalam jadual lain, yang berpotensi mewujudkan gelung tak terhingga.
Masalah ini kerap berlaku apabila berbilang jadual merujuk antara satu sama lain, mewujudkan pergantungan kitaran. Sebagai contoh, pertimbangkan jadual Code
dan jadual Employee
dengan jadual Employee
mempunyai berbilang rujukan kunci asing kepada jadual Code
.
Untuk mengelakkan ini, anda boleh melaraskan kekangan kunci asing anda untuk menggunakan ON DELETE NO ACTION
atau ON UPDATE NO ACTION
. Ini menghalang tindakan automatik (kemas kini atau pemadaman) apabila data dalam jadual yang dirujuk (Code
) diubah suai.
Sebagai alternatif, jika anda perlu menetapkan medan berkaitan dalam jadual Employee
kepada NULL
apabila kod dipadamkan, pencetus pangkalan data menawarkan penyelesaian yang lebih baik. Pencetus adalah prosedur tersimpan yang dilaksanakan secara automatik sebagai tindak balas kepada peristiwa pangkalan data tertentu (INSERT, UPDATE, DELETE). Pencetus pada jadual Code
boleh mengesan baris yang dipadamkan dan mengemas kini Employee
entri jadual yang sepadan dengan sewajarnya.
Adalah penting untuk memahami bahawa pengesanan kitaran SQL Server adalah agak mudah. Ia mungkin secara konservatif melarang tindakan rujukan walaupun kitaran sebenar tidak ada. Jika skema pangkalan data anda memerlukan tindakan melata, pencetus menyediakan penyelesaian yang boleh dipercayai.
Pertimbangan teliti perhubungan jadual dan akibat pengubahsuaian data adalah penting untuk mengekalkan integriti pangkalan data. Analisis dengan teliti reka bentuk anda untuk mengelakkan perangkap laluan lata kitaran semasa menentukan kekangan kunci asing.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Ralat 'Kitaran atau Laluan Lata Berbilang' Semasa Menentukan Kekangan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!