ホームページ >データベース >mysql チュートリアル >ジャンクション テーブルを使用して PostgreSQL で多対多のリレーションシップを実装するにはどうすればよいですか?
多対多の関係を理解する
多対多の関係では、単一のエンティティを他の複数のエンティティに関連付けることができ、その逆も同様です。これをデータベースで表現するには、通常、「結合テーブル」と呼ばれる別のテーブルが使用されます。
PostgreSQL でテーブル構造を作成する
PostgreSQL で多対多の関係を作成するには、まず 2 つのメイン テーブルを定義し、次に結合テーブルを作成する必要があります。
<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>
テーブル構造の主な特徴
メモ
以上がジャンクション テーブルを使用して PostgreSQL で多対多のリレーションシップを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。