Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Perhubungan Banyak-ke-Banyak dengan Cekap dalam PostgreSQL?
Artikel ini menangani cabaran biasa untuk melaksanakan perhubungan banyak-ke-banyak dengan cekap dalam pangkalan data PostgreSQL. Perhubungan banyak-ke-banyak menandakan perkaitan dua hala di mana berbilang kejadian satu entiti boleh dikaitkan dengan berbilang kejadian yang lain. PostgreSQL biasanya mengendalikan ini menggunakan simpang atau jadual perantara.
Pertimbangkan senario Produk dan Bil. Produk boleh muncul pada berbilang bil dan satu bil boleh mengandungi berbilang produk. Jadual Bill_Product
bertindak sebagai jambatan, menghubungkan dua entiti ini.
Pernyataan SQL Data Definition Language (DDL) berikut menunjukkan pelaksanaan yang mantap:
<code class="language-sql">CREATE TABLE product ( product_id SERIAL PRIMARY KEY, -- Auto-incrementing surrogate primary key product VARCHAR(255) NOT NULL, price NUMERIC NOT NULL DEFAULT 0 ); CREATE TABLE bill ( bill_id SERIAL PRIMARY KEY, bill VARCHAR(255) NOT NULL, billdate DATE NOT NULL DEFAULT CURRENT_DATE ); CREATE TABLE bill_product ( bill_id INTEGER REFERENCES bill (bill_id) ON UPDATE CASCADE ON DELETE CASCADE, product_id INTEGER REFERENCES product (product_id) ON UPDATE CASCADE, amount NUMERIC NOT NULL DEFAULT 1, CONSTRAINT bill_product_pkey PRIMARY KEY (bill_id, product_id) -- Composite primary key );</code>
Pendekatan ini menggabungkan beberapa penambahbaikan berbanding pelaksanaan yang lebih mudah:
SERIAL
autonaik berfungsi sebagai kunci utama, memastikan keunikan dan memudahkan pengurusan data.NUMERIC
untuk price
dan amount
memastikan perwakilan tepat nilai kewangan.REFERENCES
, ON UPDATE CASCADE
, ON DELETE CASCADE
) mengekalkan ketekalan data merentas jadual.bill_product
) menggunakan kunci utama komposit (bill_id
, product_id
), menjamin gandingan unik.Pelaksanaan SQL yang diperhalusi ini menyediakan penyelesaian yang sangat berskala dan boleh dipercayai untuk mengurus perhubungan banyak-ke-banyak dalam PostgreSQL. Penggunaan kunci pengganti, kekangan kunci asing dan kunci utama komposit memastikan integriti data dan perolehan data yang cekap, sambil mematuhi amalan terbaik untuk reka bentuk pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perhubungan Banyak-ke-Banyak dengan Cekap dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!