我必須爲我的大學的課程設計數據倉庫模型和ETL過程。我的數據倉庫具有存儲有關產品的意見/建議,每個記錄應包括:建模數據倉庫中的多對多關係
- 註釋文本(字符串)
- 產品評分({0,0.5,...,4.5,5})
- 評論作者(字符串)
- 評論日期(日期)
- 產品推薦({是,否})
- 評論選票(INT)
- 評論向下票(INT) 個
- 產品的優點(多字符串,例如{價格,設計,經久耐用,...}),其計
- 產品缺點(許多字符串,例如{聲音太大,太重,價格,...})和 其計數
另外數據倉庫應該存儲有關產品信息:
- 產品類別
- 產品品牌
- 產品型號
我想先創建數據倉庫模型,但由於它是多對多關係,因此存儲產品優缺點時遇到問題。在正常的關係數據庫中,我只是簡單地創建關聯表,但在這裏我不確定如何繼續,畢竟我不想規範化事實表。
我在考慮3種方法,第一種,我在下面的圖表中提出。我用橋表方法(儘管我不知道是否正確)擺脫了多對多的關係。我不知道它將如何影響查詢性能。
第二種方法我可以使用布爾是柱法。在PROS和CONS表格中,我可以爲每個可能的值創建一個列,但最多可以有100個不同的優點或缺點。還有一些可能的優點或缺點在時間上不是恆定的。作者在他們的評論中可以列出新的優點或缺點(這是它在數據源中的工作原理),但我不能添加新的列(我不應該更改數據倉庫中的數據)。
我正在考慮的第三種方法是保留PROS表中的專業人員,但在1列中,值將使用逗號或其他分隔符分隔,例如, 「價格,設計,顏色」。它使事情變得簡單,但很難分析或切片&骰子。
我應該在這種情況下使用哪種方法?哪個更適合將數據加載到數據倉庫中,因爲表單數據源我會得到所有的評論,而且我只想加載自上次加載後的新評論?