使用 MySQL,我有一个用户表、一个匹配表(使用实际结果更新)和一个名为 users_picks 的表(起初它总是 10 场足球比赛 pr.gameweek pr. League 因为到目前为止只有一个联赛,但最终会有更多的联赛出现,其中一些联赛只有 8 场比赛周)。
在 users_picks 表中,我应该将每个“选择”(我的选择是指“主队得分”和“客队得分”)存储在不同的行中,还是将所有 10 个选择存储在一行中?两者都有用户和游戏周的 FK。一行中的所有选择都意味着我的列中附加了如下数字:
Option 1: [pick_id, user_id, league_id, gameweek_id, match1_hometeam_score, match1_awayteam_score, match2_hometeam_score, match2_awayteam_score ... etc]
这个选项并没有让我很高兴,而且看起来有点愚蠢。特别是因为数据库中会有很多潜在的 NULL。第二种选择最终意味着数百万行。但看起来像这样:
Option 2: [pick_id, user_id, league_id, gameweek_id, match_id, hometeam_score, awayteam_score]
最佳做法是什么?使用第二种方法进行各种统计会是一个 PITA 吗?例如。计算用户在特定回合中正确命中了多少匹配,有多少始终正确命中等。
如果我没有多大意义,我会尝试详细说明任何事情。我只是不想我的桌子设计从一开始就很好,所以几个月后我就不会头疼了。
提前致谢。