【发布时间】:2015-08-27 14:37:51
【问题描述】:
与我一直在努力通过谷歌寻找解决方案的原因相同,我在为这篇文章的标题而苦苦挣扎,我在问什么??
我通常会在 rails+postgresql 中编写这个应用程序,但我被meteor+mongodb 所吸引,尽管这可能与问题无关。
我正在尝试为数据库模型预先计算和索引值,该模型应该根据用户提供的其他参数进行更改/更新。该数据库将包含数百万条记录,因此预先填充这些值将是理想的。
我最终将拥有一个充满“公司”的数据库,这些“公司”具有各种属性,例如:
location_country
location_city
incorporation_month
incorporation_year
...
在列出所有公司时,网站将允许用户通过上述属性缩小列表范围。
因此,我通常会在将公司添加到数据库时为每个属性的值添加一个计数器,并且可以在列表网页中快速访问此计数,例如:
select country:
> England (22 companies)
> France (26 companies)
...
但是当一个人可以向搜索添加多个参数时,事情就变得更加棘手了:
Select incorporation year:
2015 (126 companies) SELECTED
2014 (435 companies)
2013 (315 companies)
# below counts are including the above selection as a parameter
# but should be pre calculated
Select location:
England (13 companies)
France (8 companies)
我正试图弄清楚我应该保存什么,以便无论给出什么搜索参数序列,我都可以进行计数。
这个问题非常模糊,因为我只是在寻找我应该搜索或阅读的内容/位置的指示。
如果有人能指出我正确的方向,我将不胜感激?
【问题讨论】:
-
您知道人们对早期优化的看法...您将遭受组合爆炸的困扰,只需保留所有计数,然后在它们发生变化时对其进行更新。这个问题绝不应该是您选择哪个框架/堆栈的门控项目,这种功能已经构建在每个框架中。
标签: mysql ruby-on-rails mongodb meteor database