2011-12-20 111 views
2

我正在尝试确定哪个是最好的数据仓库类型设计。它将用于使用Google类型搜索在不同时间段查找不同时间段的历史价格平均值。例如,股票A本月,3m,6m和1年前的平均价格是多少?问题是我没有可以使用的项目名称,我有关于项目的说明字段。历史聚合的数据库设计

这意味着我不能将项目汇总到视图中,因为同一项目可能会列出20次,每个都有不同的描述,所以我必须在实时描述字段上进行全文搜索,获取价格insertdate在3个月前是<。然后找到平均值。

所以是我最好的选择拥有一切在一个表,如:

  MAIN 
---------------------------- 
ID | Description | Price | Date 

或多个表:

DESCRIPTION 
------------------ 
ID | Description | 


    PRICE 
--------- 
ID | PRICE 

而刚刚加入到得到我想要的数据。数据库将包含几百万行。如果我有办法获取该项目的真实姓名,则可以预先汇总数据,但这不是我的选择。我很感激任何建议!

回答

0

我会说选项2 ...在“说明”表中保留最高级别的详细信息。 “价格”表中的历史数据(尽管添加了日期字段以捕获时间值)

+0

这可能是我最好的选择,因为我使用的是mysql,它可以让我在描述表上运行myisam进行全文搜索,其他都可以是innodb。 – mscard02 2011-12-20 18:21:18

0

正如Joel所建议的,选项2可能会为您提供更大的灵活性。我建议在每个表格中加入更多日期以适应缓慢变化的尺寸。关于给定项目的描述和其他属性可能随时间而改变。

在实体零售商的情况下,您很可能还会包含商店ID,因为由于您的客户在特定位置附近的竞争和人口构成,商品在不同位置的价格可能会有所不同。

DESCRIPTION 
--------------------------------------------------- 
ID | Description | Effective Date | Expiration Date 


    PRICE 
----------------------------------------------------------- 
ID | Location ID | Price | Effective Date | Expiration Date