5

我们公司喜欢计算模糊指标的报告——这些指标不能用 ActiveRecord 的查找器(find_by_sql 除外)计算,而且 ruport 的基于 ruby​​ 的功能太慢了。

是否有插件、gem 或 db 适配器可以在数据库层进行大量计算?您创建复杂报告的解决方案是什么?

4

5 回答 5

2

虽然不是数据库不可知论者,但我们的解决方案是 plpgsql 函数,使用 Ruby 和 ActiveRecord 变得非常慢。

于 2009-06-27T15:56:53.350 回答
1

Thoughtbot 的 Squirrel 插件为 ActiveRecord 的 find 方法添加了许多 Ruby 风格的功能,具有多层条件、范围和嵌套模型关联:

www.thoughtbot.com/projects/squirrel/

于 2009-06-26T19:55:29.833 回答
1

您的报告是否有任何固有的东西阻止使用 SQL 视图或存储过程?

在一个特定的项目中,我经常发现一种有用的技术是将您的 SQL 查询(可能非常复杂)创建为数据库中的命名视图,然后使用

 YourModel.connection.select_all(query)

拉回数据。这不是最佳方法。我热衷于探索对它的改进。

不幸的是,正如您所建议的,在 Rails 中计算复杂的基于数据库的报告的支持似乎相当有限。

于 2009-06-27T11:40:06.157 回答
1

听起来好像您的表格可以标准化。在我工作的一个地方,我们所做的标准化量正在影响我们的报告需求,因此我们创建了一些包含一堆聚合数据的影子表,并针对这些数据进行报告。

我同意 Neil N 的评论,即这个问题有点模糊,但也许这会让你朝着正确的方向前进?

于 2009-06-28T20:47:07.900 回答
0

如果您发现 ActiveRecord 缺乏复杂查询所需的表达能力,您可能需要考虑使用DataMapperSequel作为 ORM。放弃 ActiveRecord 不会是一个很可能做出的决定,但至少它可能值得研究。

于 2009-06-28T08:05:07.520 回答