Database-Design
每日快照事實表
我有每個客戶的產品清單。客戶可以刪除產品或將產品添加到他們的列表中。我每天都想知道客戶的產品清單(和數量)是什麼。
我的第一種方法是每天按客戶創建一個包含所有產品的事實表。
這是最好的方法嗎?該事實表的增長速度與將產品添加到客戶列表中的速度相同。
順便說一句,我正在使用 Pentaho。
你可以這樣做。我正在考慮在您的事實表上為每個客戶的每個產品設置一個活動和非活動日期。然後,您可以將以前的產品標記為非活動日期。
這應該允許您查詢包含特定日期的日期範圍,以獲取特定時間點的產品列表。
如果每個客戶都有多個產品表,那麼您應該編寫一個索引視圖來獲取這些數字,而不是進入事實表。即使您有一個為客戶提供產品的表,那麼您也應該使用索引視圖。