MySQL体育数据库

MySQL体育数据库,mysql,database,foreign-keys,relational-database,Mysql,Database,Foreign Keys,Relational Database,我正在尝试建立一个体育数据库,但我对SQL是新手 我有一张进球、助攻等的表格。每个进球都有一个时间、球员ID和比赛ID来知道谁和什么时候进球。助攻和其他方面也是如此 然后,我有一张所有球员的桌子。有他们的名字、身份证、号码等 我想问一下,如果这是一个很好的表间数据划分概念,如果我想查询一名球员,他有多少进球,助攻通过等,然后可以按赛季,比赛等进行过滤 我可以想象如何使用外键来实现这一点 但是如果我在进球榜上有10万甚至更多的进球,那么助攻和其他进球也一样,也许甚至有上百万的记录,这是否足够快呢

我正在尝试建立一个体育数据库,但我对SQL是新手

我有一张进球、助攻等的表格。每个进球都有一个时间、球员ID和比赛ID来知道谁和什么时候进球。助攻和其他方面也是如此

然后,我有一张所有球员的桌子。有他们的名字、身份证、号码等

我想问一下,如果这是一个很好的表间数据划分概念,如果我想查询一名球员,他有多少进球,助攻通过等,然后可以按赛季,比赛等进行过滤

我可以想象如何使用外键来实现这一点

但是如果我在进球榜上有10万甚至更多的进球,那么助攻和其他进球也一样,也许甚至有上百万的记录,这是否足够快呢

另一件事是,如果我查询所有球员的话,我是否能够根据进球数对球员进行排序

所以,我将在网站上生成一个新的表格,其中包含所有球员和他们的所有时间统计数据,分别计算进球、助攻。。。然后根据目标和其他内容对它们进行排序


谢谢你的帮助

在我看来,你想实现什么目标看起来不错。至于你的第二个问题,我假设你想对数据库中已经存在的玩家进行排序。为了实现这一点,MySQL有一个名为orderby的命令。下面是它的样子:

SELECT *
FROM PLAYERS
ORDER BY GOALS 
默认情况下,它将按升序排序。如果要按降序排序,请在目标后添加DESC。
有关更多详细信息,请查看本教程:

对我来说似乎没问题。“速度够快吗”其实并不难回答。制作一个测试数据生成器,用数百万条记录加载数据库,并查看查询的执行情况。查看每秒可以使用X百万条记录运行多少查询,并查找性能下降的地方。有了现代化的CPU和NVMe驱动器,答案可能有点荒谬,希望远远超出您的预期使用情形。不要忘记应用所有常用的数据库优化技巧,特别是正确调整服务器并在相关位置索引所有关系数据。像这样的小补丁可以显著提高性能,如果不遵守的话,也可以阻止它。谢谢你的回答!我有一张进球、助攻等的表格。每个进球都有一个时间、球员ID和比赛ID来知道谁和什么时候进球。助攻和其他方面也是如此。看起来像一个实体“动作”。