0
ID、プロジェクトID、およびユーザーIDで構成される複合主キーを持つテーブル(チーム)を作成しました。各主キーは、idを除く他のテーブルのキーを参照します。今私はサブチームに対応したいので、チームのIDを参照するキー(team_id)を追加したいと思います。このteam_idには親チームのIDが含まれています。Postgresql - 参照先テーブルに与えられたキーと一致する唯一の制約はありません。自分のテーブルからキーを参照する
'参照されたテーブル "team"に指定されたキーに一致する一意の制約はありません。
私は、コンポジットプライマリキーの各キーの可能な組み合わせがチーム固有の制約であることを理解していませんか? 私は何が欠けていますか?
CREATE TABLE team (
id varchar NOT NULL,
project_id varchar NOT NULL, -- team should always have associated project
user_id varchar NOT NULL, -- team member id
team_id varchar, -- parent team id
create_date date NOT NULL,
create_time time NOT NULL,
name varchar,
description text,
PRIMARY KEY (id, project_id, user_id),
FOREIGN KEY (project_id) REFERENCES project (id)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES person (id)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY (team_id) REFERENCES team (id)
ON DELETE CASCADE
ON UPDATE CASCADE
);