Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melaksanakan Perhubungan Banyak-ke-Banyak dalam PostgreSQL Menggunakan Jadual Junction?

Bagaimana untuk Melaksanakan Perhubungan Banyak-ke-Banyak dalam PostgreSQL Menggunakan Jadual Junction?

DDD
Lepaskan: 2025-01-22 15:02:11
asal
141 orang telah melayarinya

How to Implement Many-to-Many Relationships in PostgreSQL Using Junction Tables?

Gunakan jadual gabungan untuk melaksanakan perhubungan banyak-ke-banyak dalam PostgreSQL

Memahami perhubungan ramai-ke-banyak

Dalam perhubungan banyak-ke-banyak, satu entiti boleh dikaitkan dengan berbilang entiti lain dan begitu juga sebaliknya. Untuk mewakili ini dalam pangkalan data, jadual berasingan yang dipanggil "join table" biasanya digunakan.

Buat struktur jadual dalam PostgreSQL

Untuk mencipta perhubungan banyak-ke-banyak dalam PostgreSQL, anda perlu mentakrifkan dua jadual utama dahulu dan kemudian mencipta jadual gabungan.

<code class="language-sql">CREATE TABLE product (
  product_id serial PRIMARY KEY  -- 隐式主键约束
, product    text NOT NULL
, price      numeric NOT NULL DEFAULT 0
);

CREATE TABLE bill (
  bill_id  serial PRIMARY KEY
, bill     text NOT NULL
, billdate date NOT NULL DEFAULT CURRENT_DATE
);

CREATE TABLE bill_product (
  bill_id    int REFERENCES bill (bill_id) ON UPDATE CASCADE ON DELETE CASCADE
, product_id int REFERENCES product (product_id) ON UPDATE CASCADE
, amount     numeric NOT NULL DEFAULT 1
, CONSTRAINT bill_product_pkey PRIMARY KEY (bill_id, product_id)  -- 显式主键
);</code>
Salin selepas log masuk

Ciri utama struktur meja

  • Produk: mewakili satu produk dengan nama dan harga.
  • Bil: mewakili satu bil dengan keterangan dan tarikh.
  • Bill_Product: Buat jadual sambungan untuk perhubungan banyak-ke-banyak. Ia mengandungi dua kunci asing kepada jadual Produk dan Bil, dan lajur amaun untuk setiap gabungan.

Nota

  • Kunci utama pengganti: Kami telah menentukan lajur bersiri sebagai kunci utama pengganti untuk jadual Produk dan Bil. Ini adalah nilai integer unik yang dijana secara automatik oleh sistem, yang menjadikan penggabungan jadual dalam pertanyaan lebih cekap.
  • Konvensyen Penamaan: Kami mengikut konvensyen penamaan yang konsisten, menggunakan kata nama tunggal untuk jadual dan huruf kecil untuk nama lajur.
  • Jenis Data: Kami telah memilih jenis data yang sesuai seperti harga sebagai jenis nombor dan tarikh bil sebagai jenis tarikh untuk memastikan ketepatan.
  • Kunci Asing: Kunci asing telah ditakrifkan sebagai ON UPDATE CASCADE dan ON DELETE CASCADE untuk menyebarkan perubahan atau pemadaman secara automatik.
  • BUKAN NULL kekangan: Kami telah mentakrifkan semua lajur sebagai BUKAN NULL untuk menguatkuasakan integriti data.
  • Indeks: akan membuat indeks secara automatik pada kunci utama jadual Bill_Product, sekali gus mempercepatkan pertanyaan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perhubungan Banyak-ke-Banyak dalam PostgreSQL Menggunakan Jadual Junction?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan