1

我是 SQL 初学者,我有一个简单的 MySQL 数据库,其中包含两个表:

  1. 球员(身份证,姓名)
  2. 比赛(ID、姓名、参与者)

我想保存有关每个锦标赛参与者的信息。我的第一个想法是participants应该包含表中的大量id字段,players但这似乎并不好。

我应该如何以正确的方式设计这个?

4

2 回答 2

7

制作另一个名为 Participants 的表,其中包含两个字段。Player_ID 和 Tournament_ID。该表可以包含尽可能多的行来关联谁在何时玩,并且您可以根据需要交叉引用它。

于 2012-07-02T20:51:42.167 回答
3

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

您应该避免在一个字段中存储多个值。这将打破数据库设计 (1NF) 的第一种正常形式,即只能将原子值存储在一个字段中。关系数据库系统不太适合处理非规范化数据,您很难为非 1NF 表编写查询。

于 2012-07-02T20:51:53.993 回答