Database-Design
穀物特有的文本應該儲存在事實表還是維度表中?
我正在使用 yelp 數據集為使用者評論建模星型模式。
每個使用者評論都有一個業務維度鍵、使用者維度鍵和與評論關聯的一堆數據。所有評論數據都是數字的,除了他們為評論輸入文本的欄位(儲存在名為 text 的列中)。
將文本數據儲存在事實表中是否有意義,因為它與事實的粒度有關?還是應該將其放置在以與事實表相同的速率增長行數的維度表中?
是的,將文本保留在事實表中確實有意義,原因有兩個:
- 它和事實是一樣的,所以有一個維度確實可以讓它和事實表一樣快地增長
- 它不連結到事實表中的其他屬性,因此可以直接在事實表中將其建模為退化維度(即使它通常更多地應用於 ID 或標籤)。
當您匯總評論時,文本不會成為您的選擇語句的一部分,因此它不會影響性能。只有在最精細的級別顯示數據時才會出現。
如果您發現您有一些其他低基數的描述性屬性,由於它們未連結到其他屬性而無法輕鬆放入現有維度,您還可以使用所有這些不相關的屬性建構一個垃圾維度。