我必须为旅行社创建数据仓库。我是第一次这样做。我已经学习了关于星形,雪花和星座模式以及创建数据warhouse的所有基础知识。我想问一下,如果这个设计总体上是好的,可以改进什么。
以下是我的维度层次结构:
以下是我现在所做的事情(在MySQL Workbench中创建模式):
答案 0 :(得分:1)
以DimClient为例。你有一个很好的代理键。接下来,您需要填写有关客户的所有信息(包括clientID),然后还要包括区,城市,地区和国家/地区。当你拥有所有这些时,那个维度就完成了。
您通过ClientKey在Fact表中链接到它,因此您需要将该Key作为外键放在Fact表中。
与您的其他维度进行类似的处理,填写尺寸和事实,并且您将处于良好的状态。您不需要使用子维度来反映您的层次结构:维度是非规范化的。
编辑:这个问题最初是完全不同的,因此上面的答案与其原始形式相关。
答案 1 :(得分:0)
这是基于修订问题的新答案。您可能希望在此设计中查看许多内容。这里有几个指针,但不是一个完整的列表:
您的DimTime维度应该是多少粒度?通常情况下,您在日期/日期粒度上有一个日期维度,但在您的表格中,它看起来像几周。
如果对于分析销售或满意度审核的时间非常重要,您可以创建单独的时间维度。
忠诚度事实似乎是一段时间内客户行为的总结 - 应该是几周?如果是这样,你可以在周级别寻找额外的维度
为什么付款类型包含当天的秒数?这似乎不对 - 支付类型与一天中的秒数无关。也许这是您缺少的日期维度,付款类型应该是分开的?
产品维度是否应具有区域层次结构?您是否说如果产品位于不同的城市,产品会有所不同?你可能想再看一遍。
我确信可以找到其他建议,祝你的课程顺利!