跟踪Web应用程序数据库中的进度或级别的正确方法

时间:2012-03-02 08:07:31

标签: php mysql

我正在根据成就创建一个网站,并将成就分为50多个组。每组有500个成就。完成一项成就后,我在数据库中记录完成它的日期。我总是逐个跟踪每个小组的进度。例如:

Group 1: 5/500
Group 2: 89/500
Group 3: 21/654
Overall: 115/1654

我的问题是,从头开始一直计算这些进度报告是不好的做法,还是应该有另一个存储这些进度的表,我会不时更新它?

2 个答案:

答案 0 :(得分:1)

创建一个活动表,跟踪各个成就并一直计算它们。这样做的好处是,如果您改变计算成就的方式,那么您根本不需要触摸原始数据

如果这个速度太慢,那么您可以创建一个成就跟踪表,您可以计算成就并定期存储它们以进行查询。

答案 1 :(得分:0)

我相信你想知道你是否应该Cache输出。这真的取决于你的申请。

  • 这是一个“按原样”多次部署的产品吗?实施缓存。
  • 否则,您是否存在报告的性能问题?
    • 没有的?不要缓存。
    • ?实施缓存。

缓存有各种各样的策略,对于你的应用程序(我只是假设你有一个可以获得这些成就的多个'对象'的集合)我更喜欢在某些事件上无效的缓存。就像对象x获得成就一样,这个“事件”使缓存无效。

输出代码首先查询缓存,并且只有在无效时执行重建它的代码。这确保输出始终有效,而不是每x小时重建所有缓存。