Database design 如何识别维度表中的条目来自哪个来源数据仓库

Database design 如何识别维度表中的条目来自哪个来源数据仓库,database-design,relational-database,data-warehouse,star-schema,fact-table,Database Design,Relational Database,Data Warehouse,Star Schema,Fact Table,我有3个大学源数据库,从中我将数据加载到数据仓库维度表中。由于所有3个源都位于相同的维度表中,我如何知道哪些行来自哪个大学?例如如果我想在多个学期内查询某所大学的一名学生的成绩单,在我的事实表(事实成绩单)中,我可以使用学生唯一的社会安全号码(ssn)进行区分,或者我可以在事实表中添加大学属性(但我认为这不正确),但对于我的课程表和其他人而言;如果所有3所大学的课程ID编号相同(例如1、2、3…),我就不知道哪些课程属于哪所大学,这样我就可以正确地将学生和课程加载到事实表中。对于课程维度,我会有

我有3个大学源数据库,从中我将数据加载到数据仓库维度表中。由于所有3个源都位于相同的维度表中,我如何知道哪些行来自哪个大学?例如如果我想在多个学期内查询某所大学的一名学生的成绩单,在我的事实表(事实成绩单)中,我可以使用学生唯一的社会安全号码(ssn)进行区分,或者我可以在事实表中添加大学属性(但我认为这不正确),但对于我的课程表和其他人而言;如果所有3所大学的课程ID编号相同(例如1、2、3…),我就不知道哪些课程属于哪所大学,这样我就可以正确地将学生和课程加载到事实表中。对于课程维度,我会有如下内容:

COURSE

course_id | c_name | cr_hours ...

1 | from_university_1 | 3
2 | from_university_1 | 3
3 | from_university_1 | 3
1 | from_university_2 | 3
2 | from_university_2 | 3
3 | from_university_2 | 3
1 | from_university_3 | 3
2 | from_university_3 | 3
3 | from_university_3 | 3

名字可以是相同的,也可以是不同的,我只是选择这些来告诉你我的意思。我是否会将ID转换为从1-1000(uni1)到1001-2000(uni2)的范围,依此类推,或者我会在每个课程名称前附上缩写(对其他维度也一样);UNI1 coursename,UNI2 coursename?谢谢您的帮助。

在加载dim的步骤中,再添加一列来保存大学名称可以吗?@PhungDuyPhong那么我会对所有维度表都这样做吗?这是好的做法吗?谢谢。是的,在我的公司(实现大型业务的DWH),总是在维度中包含源列(如果需要),但大多数情况下,它是事实表的一个单独维度。在你的情况下,我认为大学事实上表是可以的,对吗?由于作为额外维度(如starschema)是有意义的,因此uni 1的转换ID在1-1000范围内可能会在将来给您带来麻烦,对于业务用户,他们总是希望在大学信息上切片数据,对于大型事实表,每个过滤器上的计算可能会很慢。不要相信我的话,因为我为大型公司的解决方案工作,我为每个公司做的每个项目,我们总是依赖用户使用情况来确定设计,以使性能达到最佳,所以。