历史聚合的数据库设计

时间:2011-12-20 16:43:40

标签: mysql database-design data-warehouse

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

这意味着我无法将项目聚合到视图中,因为相同的项目可能会列出20次,每次都有不同的描述,所以我必须在描述字段上进行全文搜索,抓住价格在哪里insertdate是< 3个月前。然后找到平均值。

因此,我最好将所有内容放在一个表格中:

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

或许多表:

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


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

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

2 个答案:

答案 0 :(得分:0)

我会说选项2 ...在“描述”表中保留顶级详细信息。和“价格”表中的历史数据(虽然添加了日期字段以捕获时间值)

答案 1 :(得分:0)

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

对于实体零售商而言,您很可能也会包含商店ID,因为由于您的客户在特定地点附近的竞争和人口构成,物品很可能在不同地点的价格不同。 / p>

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


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