我正在根据成就创建一个网站,并将成就分为50多个组。每组有500个成就。完成一项成就后,我在数据库中记录完成它的日期。我总是逐个跟踪每个小组的进度。例如:
Group 1: 5/500
Group 2: 89/500
Group 3: 21/654
Overall: 115/1654
我的问题是,从头开始一直计算这些进度报告是不好的做法,还是应该有另一个存储这些进度的表,我会不时更新它?
答案 0 :(得分:1)
创建一个活动表,跟踪各个成就并一直计算它们。这样做的好处是,如果您改变计算成就的方式,那么您根本不需要触摸原始数据
如果这个速度太慢,那么您可以创建一个成就跟踪表,您可以计算成就并定期存储它们以进行查询。
答案 1 :(得分:0)
我相信你想知道你是否应该Cache输出。这真的取决于你的申请。
缓存有各种各样的策略,对于你的应用程序(我只是假设你有一个可以获得这些成就的多个'对象'的集合)我更喜欢在某些事件上无效的缓存。就像对象x获得成就一样,这个“事件”使缓存无效。
输出代码首先查询缓存,并且只有在无效时执行重建它的代码。这确保输出始终有效,而不是每x小时重建所有缓存。