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