データベース構造を単純化しようとしていますが、2つのテーブルmatches
とteam_statistics
があります:
ここでteam_statistics
テーブルでは、team_statistics.team_id
はmatches.teams_id
とmatches.teams_id1
を参照する外部キーである必要があり、同様にteam_statistics.group_id
はmatches.groups_id
とmatches.groups_id1
を参照する外部キーである必要があります。
PostgreSQLでこれを行う方法は?
matches
とteam_statistics
の間に別のテーブルを作成してこれを行う他の方法がある場合は、提案を受け付けていますが、2つの主キーを参照する1つの外部キーを作成する方法を知りたいと思います。
チームをどこかのグループに追跡する必要があると思います。何かのようなもの:
CREATE TABLE team_groups (
team_id int,
group_id int,
primary key (team_id, group_id)
);
次に、これに対して2つの外部キーを持つmatchesテーブルが必要です。次に、統計テーブルもそれを参照する必要があります。
Team_statisticsからマッチへの複数の外部キーを作成することもできますが、これを行うと、チームがマッチの一方の側ともう一方の側の両方になるまで統計を取得できなくなります。