Ruby on rails 存储聚合信息的Rails

Ruby on rails 存储聚合信息的Rails,ruby-on-rails,database,analytics,aggregate-functions,graphing,Ruby On Rails,Database,Analytics,Aggregate Functions,Graphing,我正在制作一个Rails应用程序,它将提供大量“计算”或“聚合”数据,即通过对用户存储的数据执行昂贵的操作来计算的信息。我想我需要某种方式来存储这些数据,这样A.我不会经常执行昂贵的数据库操作,B.这样我就可以随着时间的推移为给定的属性吐出带有漂亮图形的“报告” 我想知道实现这一点的最佳方式是什么?我需要计算和存储给定模型的值(数值),以及它们如何随时间变化。我希望这是有效的,避免重复和重复数据。一旦创建,这些记录将非常固定,所以我不需要担心事情会发生太多变化,尽管这需要考虑 我只是想知道最常见

我正在制作一个Rails应用程序,它将提供大量“计算”或“聚合”数据,即通过对用户存储的数据执行昂贵的操作来计算的信息。我想我需要某种方式来存储这些数据,这样A.我不会经常执行昂贵的数据库操作,B.这样我就可以随着时间的推移为给定的属性吐出带有漂亮图形的“报告”

我想知道实现这一点的最佳方式是什么?我需要计算和存储给定模型的值(数值),以及它们如何随时间变化。我希望这是有效的,避免重复和重复数据。一旦创建,这些记录将非常固定,所以我不需要担心事情会发生太多变化,尽管这需要考虑


我只是想知道最常见的方法是什么,我应该如何在Rails应用程序中实现这一点?

我一直在研究一个类似的问题,而且我也研究过以错误方式实现这一点的应用程序

以下是我的最佳实践建议:

  • 将原始数据存储在模型中,我们调用is
    Feed
  • 设置与另一个保存计算值的模型的一对一关联,例如
    FeedStats
    。这也可能是一对多关联或多对一,具体取决于具体情况;您可以将一些单独的
    Feed
    记录汇总到某种集合中,等等
  • 保留所有原始数据。如果您以后想将计算切换到其他算法,并且可能需要重新计算旧数据,或者如果您在计算中发现错误等,这将非常有用
  • 使用诸如Resque(带或不带调度器)、DelayedJob或类似工具,在后台任务上设置计算

如果你能更具体一点,并给出一些你的确切问题的例子,我也许能给出一些更具体的提示。祝你好运。

谢谢你的回复,我有几个模型,每个模型都有数字属性(一些db列,一些计算值的方法)。我想画出这些随时间变化的图表。我想最简单的方法就是选择范围内的所有值,然后使用rails内置缓存缓存这个查询。我只是想知道是否有一个标准的方法来产生这样的统计数据?我看过这颗宝石,它看起来很有意思:-再次感谢:)我没见过它,但它看起来很有趣。