我有一个 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 比较陌生,我自己工作。通常如何处理具有相同尺寸的不同颗粒的多个事实?
编辑:
我已经为这个问题提供了我的解决方案,这个问题已经在生产环境中工作了不到一年!请看下面我的回答...