我正在開發一個數據倉庫,並提出了一個問題,我不知道如何解決。目前的架構定義如下:數據倉庫設計問題
DimInstructor < - 維度表教官 DimStudent < - 維度表的學生
我想要實現的場景,由此,如果在我的OLTP數據庫中的教師改變的細節,我想爲了歷史報告的原因在DimInstructor表中添加新記錄。
現在,我想創建一個名爲DimLesson的課程表。在DimLesson中,我想創建一個對教師的引用。
的DimInstructor表包含:
InstructorDWID < - 標識字段時進入DW InstructorID < - 已來自OLTP數據庫
現在的教練ID,我不能讓InstructorID主因爲它不能保證是唯一的(如果教師更改他們的名稱,DW中將有2個記錄具有相同的InstructorID值)。
所以我的問題是,我該如何引用DimLesson的教師?我使用InstructorDWID嗎?如果是這樣,我應該在DimInstructor中爲一個教師提供2個條目,當我想要查看特定教師的所有課程時,這會使查詢更加複雜。
任何幫助,將不勝感激!
謝謝你。我將如何去引用另一個維度表中的密鑰?所以DimLessons表包含特定教師的所有課程。課表使用類型2以相同的方式起作用。 – Paul 2010-08-12 13:41:54
尺寸表(通常)不應該彼此引用。它們都是獨立的實體,它是引用這些表的事實表。 從我所瞭解的情況來看,你的情景會在事實層次上有一個班級報名。每個班級的報名將在事實表中記錄。 students_dim,instructors_dim,classes_dim將包含相應的屬性。 enrollment_fact將包含這些表中每個表的鍵以及所有其他詳細信息,如enrolllment_date等。 – 2010-08-12 13:52:39
我想我明白了。因此,如果我想創建基於教師,學生,課程和課程預訂的模式,那麼每個模糊表格(教師,學生,課程)將相互獨立並通過事實錶鏈接?這是有道理的,但如果生成的報告顯示的是沒有人蔘加過的講師的課程,該怎麼辦?如果在事實表中沒有沒有人出席的記錄,我將如何將講師鏈接到課程? – Paul 2010-08-12 13:57:35