2011-12-20 109 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