如何设计多项运动的体育统计数据库?

Cur*_*tis 7 database-design

我正在尝试设计一个数据库来存储多种运动的球员统计数据.

在数据库中,你会有一堆玩家.每个球员属于一个球队,每个球队都参加一项运动.到目前为止,这是我所拥有的表格:

播放器(Player_ID,Team_ID,FirstName,LastName)

团队(Team_ID,Sport_ID,TeamName)

运动(Sport_ID,SportName)

现在我想存储玩家的统计数据.我遇到了不同运动员参加不同运动的问题,因此必须为每项运动存储不同类型的统计数据.如果我存储曲棍球运动员和棒球运动员,例如:

  • 对于曲棍球运动员我想存储目标和助攻

  • 对于棒球运动员我想要存储命中,本垒打和打点.

有没有一种正确的方法来使用一个数据库做这样的事情?我有没有开始正确的方式?

Jea*_*rin 6

正确的方法是制作多张桌子,每项运动似乎都有一张桌子。

球员(Player_ID,名字,姓氏)
球队(Team_ID,Sport_ID,TeamName)
球队名单(Team_ID,Player_ID)
Sport(Sport_ID,SportName)
HockeyStats(Player_ID,Team_ID,Year,目标,GamesPlayed,Assists)
BaseBallStats(Player_ID,Team_ID,Years,无聊的运动)

这也解决了交易情况,即从中获得积分的团队以及多项运动。


小智 6

您可以从sportsdb获得灵感,这是一个由XML Team创建的体育建模的rdbms模式.在该模式中,游戏和玩家统计数据存储在非规范化表格中,并且核心统计数据(如得分)与体育特定的统计数据保持分离.模式非常复杂,但可以让您了解可能的实现