我是 SQL 初学者,我有一个简单的 MySQL 数据库,其中包含两个表:
- 球员(身份证,姓名)
- 比赛(ID、姓名、参与者)
我想保存有关每个锦标赛参与者的信息。我的第一个想法是participants
应该包含表中的大量id
字段,players
但这似乎并不好。
我应该如何以正确的方式设计这个?
我是 SQL 初学者,我有一个简单的 MySQL 数据库,其中包含两个表:
我想保存有关每个锦标赛参与者的信息。我的第一个想法是participants
应该包含表中的大量id
字段,players
但这似乎并不好。
我应该如何以正确的方式设计这个?
制作另一个名为 Participants 的表,其中包含两个字段。Player_ID 和 Tournament_ID。该表可以包含尽可能多的行来关联谁在何时玩,并且您可以根据需要交叉引用它。
从第二个表中删除“参与者”并添加第三个表:TournamentPlayers(playerid,tournamentid)。
您应该避免在一个字段中存储多个值。这将打破数据库设计 (1NF) 的第一种正常形式,即只能将原子值存储在一个字段中。关系数据库系统不太适合处理非规范化数据,您将很难为非 1NF 表编写查询。