存储网站数据的最佳方法是什么?

时间:2014-05-13 10:26:33

标签: mysql arrays database web

对于模糊的问题感到抱歉,但我只能通过举例说明我需要解决方案的问题来解释我的问题。 在篮球方面,我的朋友和我一次拍摄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,而不是一个总运行百分比 - 我应该怎么做呢?感谢。

1 个答案:

答案 0 :(得分:1)

我会把它存储在不同的表中,所以你得到了:

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