2012-07-02 125 views
1

我在SQL初学者的模式,我有一个简单的MySQL数据库,其中包含两个表:设计为球员和比赛

  1. 玩家(ID,姓名)
  2. 锦标赛(ID,姓名,参与者)

我想保存有关每个比赛参与者的信息。我的第一个想法是participants应该包含players表中的大量id字段,但这看起来不太好。

我应该如何正确设计?

+2

大量的ID,呃? – LittleBobbyTables

回答

7

制作另一个名为参与者的表格,其中包含两个字段。 Player_ID和Tournament_ID。这张表可以容纳尽可能多的线,以便将谁玩的时间相关联,并且可以根据需要交叉参考。

3

从第二个表中删除“参与者”并添加第三个表:TournamentPlayers(playerid,tournamentid)。

您应该避免在一个字段中存储多个值。这将打破数据库设计的第一种正常形式(1NF),其中规定只有原子值可以存储在一个字段中。关系数据库系统并不适合处理非标准化的数据,并且很难写入对非1NF表的查询。