Rumah > Artikel > pangkalan data > Peranan kunci asing dalam mysql
Kunci asing dalam MySQL memainkan peranan perhubungan kekangan dan penyelenggara data, dan mempunyai tiga fungsi utama: memastikan integriti rujukan antara jadual dan mencegah ketidakkonsistenan data yang disebabkan oleh pemadaman atau pengemaskinian rekod jadual; integriti dan menghalang rekod anak yatim; gunakan indeks untuk mengoptimumkan prestasi pertanyaan dan menggunakan kunci asing untuk mencari rekod dalam subjadual dengan cepat yang merujuk kepada kunci utama tertentu.
Peranan kunci asing dalam MySQL
Kunci asing memainkan peranan penting dalam pangkalan data MySQL, bertindak sebagai kekangan dan penyelenggara perhubungan antara jadual.
Peranan 1: Memastikan integriti data
Peranan kunci asing adalah untuk memastikan hubungan rujukan antara jadual sentiasa konsisten. Contohnya, dalam jadual Pesanan dan jadual Produk, kunci asing ID Produk dalam jadual Pesanan merujuk kunci utama ID Produk dalam jadual Produk. Apabila rekod dipadamkan dalam jadual Produk, kekangan kunci asing menghalang operasi daripada berlaku sehingga semua rekod jadual Pesanan yang merujuk rekod itu dipadamkan, sekali gus menghalang ketidakkonsistenan data.
Fungsi 2: Melantun data paksa
Kunci asing boleh memaksa operasi melata antara jadual. Apabila anda memadam atau mengemas kini rekod kunci utama jadual, anda boleh menyediakan peraturan kunci asing supaya tindakan itu secara automatik (mengemas kini atau memadamkan rekod subtable yang merujuk rekod itu). Ini memastikan integriti rujukan dan menghalang rekod anak yatim yang disebabkan oleh pemadaman atau kemas kini secara berperingkat.
Fungsi 3: Optimumkan prestasi pertanyaan
Dengan menggunakan indeks kunci asing, MySQL boleh mengoptimumkan prestasi pertanyaan antara jadual. Indeks boleh mencari rekod dengan cepat dalam jadual kanak-kanak yang merujuk rekod kunci utama tertentu, mengurangkan keperluan untuk mengimbas sejumlah besar data. Ini amat penting untuk pertanyaan besar yang melibatkan berbilang jadual.
Contoh
Contoh berikut menunjukkan hubungan kunci asing antara jadual pesanan dan jadual produk:
<code>CREATE TABLE orders ( order_id INT NOT NULL AUTO_INCREMENT, product_id INT NOT NULL, quantity INT NOT NULL, PRIMARY KEY (order_id), FOREIGN KEY (product_id) REFERENCES products(product_id) ); CREATE TABLE products ( product_id INT NOT NULL AUTO_INCREMENT, product_name VARCHAR(255) NOT NULL, PRIMARY KEY (product_id) );</code>
Dalam contoh ini, kunci asing pada lajur orders
表中的 product_id
列是 products
表 product_id
. Hubungan kunci asing ini memastikan bahawa setiap pesanan merujuk kepada produk yang sah.
Atas ialah kandungan terperinci Peranan kunci asing dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!