很抱歉这个模糊的问题,但是我只能通过举例说明我需要什么解决方案来进一步解释我的问题。
在篮球比赛中,我和我的朋友一次拍摄20张球,并记录进场次数-我想建立一个数据库来存储每位球员的n / 20套球,以求平均值。 MySQL听起来不像是最好的解决方案,因为它无法存储简单的数组。
也许我可以将这些数据存储为2D数组?例如。
stats = [
[ ["me" , 12 , 14 , 8 , 19 , 13 , 10...] ],
[ ["friend1" , 11 , 9 , 14 , 15 , 16 , 18...] ],
[ ["friend2" , 17 , 9 , 18 , 14 , 17 , 17...] ]
]
我想保持每组20个而不是总运行百分比-我应该如何处理呢?谢谢。
最佳答案
我将其存储在单独的表中,所以您得到了:
Games - GameID, Date, NumberOfShots (so you're not fixed to 20), Etc
Players - PlayerID, Name, etc
Turns - TurnID, GameID, PlayerID, Score
通过这些,您可以轻松地为每个玩家聚合,类似这样。
在过去30天内获得每位玩家的平均百分比。
select
p.PlayerID,
p.Name
AVG(p.Score / g.NumberOfShots) * 100 as Percentage
from
Games g
inner join Players p on p.GameID = g.GameID
inner join Turns t on t.GameID = g.GameID and t.PlayerID = p.PlayerID
where
g.Date > (sysdate() - 30)
group by
p.PlayerID,
p.Name