我有一个包含各种教育数据的PostgreSQL数据库,例如学校水平的考试成绩和入学人数。我需要将入学人数与考试成绩分开,因为这些数据在不同的粒度上。尽管入学人数与考试成绩数据的粒度不同,但很多维度是相同的。例如,我拥有:
~ ---------------------------------------------------------------------------------~
| Test Scores Fact |
|-------------|-----------|----------|-----------|--------------|------------|-----|
| school_code | test_code | grade_id | gender_id | ethnicity_id | subject_id | ... |
|-------------|-----------|----------|-----------|--------------|------------|-----|
~ --------------------------------------------------------~
| Enrollment Fact |
|-------------|----------|-----------|--------------|-----|
| school_code | grade_id | gender_id | ethnicity_id | ... |
|-------------|----------|-----------|--------------|-----|
这种结构在后端看起来很好,但在Qlikview中会创建一个合成键。解决合成键的方法通常是通过Qlikview脚本将其替换为链接表,这也是我的做法。但是,当我添加第三个事实表(另一个粒度)时,其中包含更多相同的维度,如果我创建另一个链接表,现在我的两个链接表开始关联,因为它们包含几个具有共同名称的字段,而Qlikview的响应是创建更多的合成键?
我对Qlikview还比较陌生,目前正在独自工作。如何处理具有共同维度的不同粒度的多个事实表?
编辑:
我提供了解决此问题的方案,在生产环境中已经运行了将近一年!请查看下面的答案...