我有一个项目,它计算用户表现的“统计数据”,然后向他们展示。所有这些统计数据最终都来自一张记录用户与网站交互的大型“交互”表。目前,所有这些统计数据都是通过查看此数据进行计算的。我们广泛使用持久性缓存来使这些事情保持快速。
我们正在考虑采用“迭代设计”,其中统计值存储在数据库中,并且在每次记录交互时,根据该交互对每个分数的贡献更新值,因此我们实际上是迭代更新值。(现在我们只是使缓存变脏)。
我认为迭代设计存在一些问题,因为它意味着我们在数据库中存储了这些冗余的、潜在不同步的信息,这使得添加新的统计数据变得困难,并且意味着在每个交互日志上需要更多的工作。但好处是简化了统计数据查询,只需单个数据库访问!
这种迭代设计中的某些内容引起了我的警觉,但我不能否认潜在的节省时间的好处。我应该听从这种直觉,还是继续做呢?
我们正在考虑采用“迭代设计”,其中统计值存储在数据库中,并且在每次记录交互时,根据该交互对每个分数的贡献更新值,因此我们实际上是迭代更新值。(现在我们只是使缓存变脏)。
我认为迭代设计存在一些问题,因为它意味着我们在数据库中存储了这些冗余的、潜在不同步的信息,这使得添加新的统计数据变得困难,并且意味着在每个交互日志上需要更多的工作。但好处是简化了统计数据查询,只需单个数据库访问!
这种迭代设计中的某些内容引起了我的警觉,但我不能否认潜在的节省时间的好处。我应该听从这种直觉,还是继续做呢?