我经营多个撞球联盟,并一直将信息保存在 excel 中。我正在努力将其移至网络并使用 MySQL 获取数据。matches 表中的数据量最大,包含每场比赛的信息。
我有多个基于不同游戏的联赛,直池,一个口袋,9 球和 8 球。每场比赛都有一些特定的领域,例如直池中的高位奔跑,但没有其他领域,8 球和 9 球中的突破和奔跑,但其他两个没有,8 球中的突破,但没有其他领域,等等。
我可以将所有这些字段放在一个表中,并有一个名为“游戏”的字段,用于标记该记录是关于哪个游戏的。或者,我可以为每场比赛准备一张桌子,其中包含该比赛所需的所有字段。
单桌,如果我走那条路,一开始会很小,但如果我能够扩大我拥有这些联赛的地方的数量,记录的数量可能会在几年内增加到 20,000 或更多。
哪种方式最好?
PS 我不设想在同一查询中运行查看多个游戏记录的查询。
如果您的查询事先知道您指的是哪种类型的游戏,并且您每次查询只有一个游戏,那么最简洁的方法很可能是为不同的游戏设置不同的代理表,并且始终
JOIN
在主表中包含一个特定的适合您的游戏类型。例如,您将拥有一张包含所有不同类型游戏的表格:
球员表(可能还有联赛、赛季等)
你的匹配表:
然后,对于每个特定的游戏类型,一个包含所有有意义的列的表格:
所以,让我们想象一下,2017 年 1 月 1 日,玩家 1 和 2 之间有一场“直池”比赛。您可以将数据添加到两个表中:
您执行查询的方式很可能是:
dbfiddle在这里