学校での私の論文では、PHPのウェブサイトを作成しています。魔女はファンタジーフットボールのサイトに基づいています。ローカルホストサーバーで実行されます。
MySQLデータベースを使用していますが、このデータベースのレイアウト方法を見つける際の問題。私はすでにプレーヤー(ID、名前、チーム、ポジション)のテーブル、ユーザーテーブル(ID、名前、パスワード、チーム内のIDプレーヤー1、IDプレーヤー2、IDプレーヤー3、IDプレーヤー4)、および一致するテーブル(ID 、日付、ホームチーム、アウェイチーム、結果)。しかし、その試合で誰が得点したかを追加したいと思います。 2人がスコアを付けることがありますが、5人がスコアを付けることもあるため、これを行うにはどうすればよいですか?どうすればよいですか?
すべての助けは本当にありがたいです。
回答:
回答№1は2あなたはplayers_who_scoredリンクテーブルとの多対多の関係を表現したいと思うでしょう。これは次のようになります。
CREATE TABLE players_who_scored (
player_id INT NOT NULL,
FOREIGN KEY (player_id) REFERENCES players(id),
match_id INT NOT NULL,
FOREIGN KEY (match_id) REFERENCES matches(id),
PRIMARY KEY (player_id,match_id)
);
更新:
ゲーム内のプレーヤーに関するすべての統計を追跡する場合は、次のような列を追加できます。
CREATE TABLE player_stats (
goals INT,
assists INT,
yellow_cards INT,
player_id INT NOT NULL,
FOREIGN KEY (player_id) REFERENCES players(id),
match_id INT NOT NULL,
FOREIGN KEY (match_id) REFERENCES matches(id),
PRIMARY KEY (player_id,match_id)
);