0

我必须为旅行社创建数据仓库。我是第一次这样做。我已经学习了有关星形、雪花和星座模式以及创建数据仓库的所有基础知识。我想问问有什么可以改进的,这个设计总体上是否不错。

这是我的维度层次结构:

在此处输入图像描述

这是我现在所取得的成果(在 MySQL Workbench 中创建模式):

在此处输入图像描述

4

2 回答 2

1

以 DimClient 为例。你有一个很好的代理键。接下来,您需要填写有关客户的所有信息(包括 clientID),然后还包括地区、城市、地区和国家。当你拥有了所有这些时,那个维度就完成了。

您通过 ClientKey 在 Fact 表中链接到它,因此您需要将该键作为外键放入 Fact 表中。

对你的其他维度做一个类似的过程,把维度和事实都填好,你的状态就会很好。您不需要子维度来反映您的层次结构:维度是非规范化的。

编辑:这个问题最初是完全不同的,因此上面的答案与其原始形式相关。

于 2017-04-02T14:09:33.687 回答
0

这是基于修改后的问题的新答案。对于此设计,您可能需要查看许多内容。这里有一些提示,但不是完整的列表:

  • 您的 DimTime 维度应该是什么粒度?通常,您在日期/日期粒度上有一个日期维度,但在您的表格中,它看起来像周。

  • 如果这对于分析销售或满意度评价的时间很重要,您可以创建一个单独的时间维度。

  • 忠诚度事实似乎是一段时间内客户行为的总结——应该是几周吗?如果是这样,您可以在周级别上获得额外的维度

  • 为什么付款类型中有一天中的秒数?这似乎不对——支付类型与一天中的秒数无关。也许这是您缺少的时间维度,并且付款类型应该分开?

  • 产品维度是否应该具有区域层次结构?你是说一个产品在不同的城市是不同的吗?你可能想再看一遍。

我相信可以找到其他建议,祝你的课程好运!

于 2017-04-04T13:13:57.107 回答