gpt4 book ai didi

mysql - 关系数据库 - 存储累积数据的最佳方式?

转载 作者:行者123 更新时间:2023-11-29 06:31:20 26 4
gpt4 key购买 nike

我正在尝试找出跟踪随时间累积的数据的最佳方法。

假设我有每周进球的运动员。我可以使用 goals 列来存储玩家的进球数并在需要时更新此值:

Player
id
name
goals

这看起来不错,但是,我正在考虑在赛季结束时做什么。我可以继续计算,也可以决定我真正感兴趣的是球员的 goals_this_season

我不想忘记那个辉煌的赛季,我最好再创建一张表来记录过去赛季的进球吗?

因此,我是否应该完全删除 players 表中的 goals_this_season 列?还是应该根据我的业务逻辑来决定这个决定? IE。如果我对 goals_this_season 更感兴趣,它是否应该保留在 players 表中,这样我就不需要每次都访问两个表我想要一个球员的 goals_this_season

SeasonGoals
id
season_year
player_id == Player.id
goals

如果我扩展到 goals_this_weekgoals_this_game 会怎样?这仍然是最好的主意吗?有其他选择吗?

总结

  • 我是否应该按照概述将与对象相关的历史数据存储在单独的表中?
  • 是否应该根据我打算如何使用数据库来决定我是否有 Player.goals_this_season 列?或者它应该是 SeasonGoals 表的一部分吗?

最佳答案

您应该做的是规范化数据。球员和目标之间存在一对多关系,因此规范化要求每个目标都应对应于 player_goals 表中的一行。为您的目标打上时间戳,然后使用分组查询(可能将结果缓存在汇总表中)来获取每个时间段的目标,无论是天、月、年等。

关于mysql - 关系数据库 - 存储累积数据的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com