数据仓库架构设计 - 如何改进架构模型

时间:2017-04-02 00:34:51

标签: mysql mysql-workbench data-warehouse star-schema snowflake-schema

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

以下是我的维度层次结构:

enter image description here

以下是我现在所做的事情(在MySQL Workbench中创建模式):

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

与您的其他维度进行类似的处理,填写尺寸和事实,并且您将处于良好的状态。您不需要使用子维度来反映您的层次结构:维度是非规范化的。

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

答案 1 :(得分:0)

这是基于修订问题的新答案。您可能希望在此设计中查看许多内容。这里有几个指针,但不是一个完整的列表:

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

  • 如果对于分析销售或满意度审核的时间非常重要,您可以创建单独的时间维度。

  • 忠诚度事实似乎是一段时间内客户行为的总结 - 应该是几周?如果是这样,你可以在周级别寻找额外的维度

  • 为什么付款类型包含当天的秒数?这似乎不对 - 支付类型与一天中的秒数无关。也许这是您缺少的日期维度,付款类型应该是分开的?

  • 产品维度是否应具有区域层次结构?您是否说如果产品位于不同的城市,产品会有所不同?你可能想再看一遍。

我确信可以找到其他建议,祝你的课程顺利!