복붙노트

[SQL] 어떻게 PostgreSQL의에서 many-to-many 관계를 구현하는 방법?

SQL

어떻게 PostgreSQL의에서 many-to-many 관계를 구현하는 방법?

나는 제목이 자명 믿습니다. 당신은 어떻게 다 대다 관계를 만들기 위해 PostgreSQL의에서 테이블 구조를 만들려면 어떻게해야합니까.

내 예 :

Product(name, price);
Bill(name, date, Products);

해결법

  1. ==============================

    1.다음과 같이 할 수있는 SQL DDL (데이터 정의 언어) 문 :

    다음과 같이 할 수있는 SQL DDL (데이터 정의 언어) 문 :

    CREATE TABLE product (
      product_id serial PRIMARY KEY  -- implicit primary key constraint
    , 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)  -- explicit pk
    );
    

    나는 몇 가지 조정을 :

  2. from https://stackoverflow.com/questions/9789736/how-to-implement-a-many-to-many-relationship-in-postgresql by cc-by-sa and MIT license