我试图设计一个数据库来存储多种类型运动的运动员统计数据。
在数据库里,你会有一群玩家。每名队员都属于一支球队,每支球队都参加一项运动。以下是我到目前为止为这部分准备的桌子:
球员(Player_ID,Team_ID,FirstName,LastName)
团队(Team_ID,Sport_ID,TeamName)
体育(Sport_ID,SportName)
现在我想存储玩家的统计数据。我遇到了一个问题,不同的球员玩不同的运动,因此必须存储不同类型的统计数据为每项运动。例如,如果我储存曲棍球运动员和棒球运动员的话:
是否有适当的方法来使用一个数据库来做这样的事情?我开始的路对不对?
发布于 2010-12-09 23:19:22
正确的方法是制作多张桌子,每项运动都有一张桌子。
球员(Player_ID,FirstName,LastName)
团队(Team_ID,Sport_ID,TeamName)
TeamList (Team_ID,Player_ID)
体育(Sport_ID,SportName)
HockeyStats (Player_ID,Team_ID,年份,进球,GamesPlayed,助攻)
BaseBallStats (Player_ID,Team_ID,Years,BoringSport)
这也解决了交易的情况,哪支球队得到的分数,以及多项运动。
发布于 2012-04-20 21:39:40
您可以从运动队b获得灵感,这是一个由XML创建的体育建模的rdbms模式。在该模式中,游戏和玩家统计数据存储在非规范化表中,核心统计数据(如得分)与特定运动的统计数据保持分离。这个模式非常复杂,但是可以给您一个可能的实现的想法。
发布于 2010-12-09 23:29:37
另一种方法是带有一个统计信息ID列的单个表,标识在该行中描述的统计信息。如果要保存的统计数据会随着时间的推移而改变,这可能会很好。只有当每个统计数据的基本形式是相同的(对不起,我是英国人,不熟悉你提到的体育和统计数据)时,它才能很好地工作,但是有多表小变量(一个表中的所有百分比统计,另一个表中的所有简单计数统计,等等)。
https://stackoverflow.com/questions/4404118
复制相似问题