1
サッカー選手として、私がプレイしたすべての試合を見たいですが、試合でどの試合をプレイしたのかを記録してはいけません。1人のサッカー選手が彼の試合すべてを見るためにどのような関係を取るべきですか?
タイトルと同様、どのデータベース関係を使用する必要がありますか?
サッカー選手として、私がプレイしたすべての試合を見たいですが、試合でどの試合をプレイしたのかを記録してはいけません。1人のサッカー選手が彼の試合すべてを見るためにどのような関係を取るべきですか?
タイトルと同様、どのデータベース関係を使用する必要がありますか?
プレイヤーテーブルとマッチテーブルがあると仮定すると、3つのテーブルを持ち、2つのテーブルの関係をマップします。このテーブルには、プレーヤーID(プレーヤーテーブルへの外部キー)、一致ID(一致テーブルへの外部キー)、およびその2つの組み合わせが主キーになります。また、プレイヤーが来たときや私たちが出たとき(例えば、赤いカードや代行を介して)など、いくつかの追加情報を保持することもできます。
CREATE TABLE player (
id INT PRIMARY KEY,
-- other player details
);
CREATE TABLE match (
id INT PRIMARY KEY,
-- other match details
);
CREATE TABLE player_matches (
player_id INT,
match_id INT,
minute_on INT NOT NULL DEFAULT 0,
minute_off INT,
CONSTRAINT player_matches_pk PRIMARY KEY (player_id, match_id),
CONSTRAINT fk_player FOREIGN KEY (player_id) REFERENCES player(id),
CONSTRAINT fk_match FOREIGN KEY (match_id) REFERENCES match(id)
);