随着我的 Rails 应用程序的成熟,越来越明显的是它具有强大的数据仓库风格,只缺少一个事实表来使所有内容都变得清晰。
最重要的是,我刚刚阅读了Ruby 最佳实践的第 2 章(设计漂亮的 API)和第 3 章(掌握动态工具包)。
现在我想弄清楚如何最好地设计事实检索部分......
假设我有以下维度(应用程序中的现有模型):
- 产品(包含资金)
- 基金
- 衡量(例如总持股、平均持股、平均曝光)
...还有一个很好的通用事实:
- 事实(日期、值以及我的每个维度的外键 NULLable 列)
在某些方面,我将不胜感激获得一些建议:
- 什么可以构成一个灵活的检索界面?
- 如果我的 Facts 具有一个维度的 NULL(即全部或不关心)和 NOT NULL(特定)值,会发生什么?像
:all
? 还是应该适用一些约定? - 如何仅选择维度值的子集?还是排除一个子集?:only 和 :exclude?
- 有没有人有创建
named_scope
s 来处理这个问题的经验?能够为每个感兴趣的维度链接一个明显的吸引力,但是如果我们得到 7 或 8 个维度,它会变得太笨重吗?
(我知道一个acts_as_fact
插件被认为以某种形式存在(至少,在 RailsConf 2006 上有一些小嗡嗡声),但我找不到任何代码或关于它如何工作的描述。)
版本:Rails、ActiveRecord 2.1.2、Oracle 增强适配器 1.2.0
编辑:我查看了 ActiveWarehouse 并有一些保留意见: - 主分支自 2008 年 11 月以来没有提交,自 09 年 1 月以来根本没有任何活动;- 教程可以追溯到 2006 年,承认已经过时了,我的 404s;- 它似乎想要摆脱 ActiveRecord - 我的大部分应用程序将留在 AR 中,我认为目前我想要一个 AR 解决方案。
所以我会避开那个,谢谢!