数据仓库维度设计、客户及联系方式

Posted

技术标签:

【中文标题】数据仓库维度设计、客户及联系方式【英文标题】:Data warehouse dimension design, customer and contact 【发布时间】:2017-08-16 20:42:53 【问题描述】:

在我们的关系数据库中,我们同时拥有客户表和联系人表。客户是组织或公司,联系人是组织或公司中的所有个人联系人。

我正在尝试遵循星型模式,我想知道将客户和联系人组合到一个维度是否有意义。这意味着我们将在维度中为该公司的每组联系人重复相同的客户编号,我不确定在构建多维数据集时是否会导致问题。

考虑到它们的特点,将它们结合起来是个好主意吗?这种设计在我的立方体中有什么问题需要我担心吗?

感谢您的意见。

【问题讨论】:

【参考方案1】:

您可能应该将客户和联系人保留为单独的维度。

在对您的业务一无所知的情况下,我的感觉是,您可能掌握的事实可能只涉及客户。例如,如果您尝试将其实现为 Contact->Customer 的层次结构,则会导致涉及预算和预测的事实问题,并且可能还会导致订单问题。

【讨论】:

当有人下订单时,订单是基于客户编号和下订单的联系人。大多数情况下,我们仅根据客户数量汇总数据,但在某些情况下,我们会按联系人查看收入,以了解哪些联系人的表现优于其他联系人。考虑到上述详细信息,具有包含联系人的层次结构的客户暗表是否有意义?谢谢。 我希望我能给你一个更好的答案,但“这取决于。”这是一个层次结构还是二维是一个相当普遍的话题,一个很好的讨论是blog.oraylis.de/2012/08/one-or-two-dimensions。就个人而言,我仍然将其建模为两个维度,因为我的思考范围比您的订单事实更广泛,而且我相信将来会有您想要一个客户,而不是一个联系人的情况。此外,是否存在联系人在客户之间移动的情况?跟踪联系人的生命周期价值可能会成为未来的需求。 感谢您的洞察力,我很感激。

以上是关于数据仓库维度设计、客户及联系方式的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库数仓建模之星型模型与维度建模

关于命名规范维度明细层及集市汇总层设计的思考

讲清楚数据仓库模型设计!

讲清楚数据仓库模型设计!

讲清楚数据仓库模型设计!

数据仓库中的时间维度