我可以有一个描述性属性很少的事实表吗

Posted

技术标签:

【中文标题】我可以有一个描述性属性很少的事实表吗【英文标题】:Can i have a fact table with few descriptive attributes 【发布时间】:2020-07-10 15:23:10 【问题描述】:

我知道事实应该包含度量,但在某些情况下,我希望报告中包含一些描述性属性,因为仅来自事实表业务的普通 ID 无法理解它。

我是否应该将我的事实表加入维度以提取此类属性并创建一个新表用于报告??

事实表应该总是有度量,还是它也可以有一些描述性的属性,这样我就可以避免上述步骤?

Kimball 的例子总是表明,假设交易事实只是有措施

【问题讨论】:

您将事实表连接到维度表以满足每个查询。 谢谢,这是唯一最好的方法@GilbertLeBlanc 吗? 【参考方案1】:

我是否应该将我的事实表加入维度以提取此类属性并创建一个新表用于报告??

-- 是的,但您不一定需要为结果创建新表。结果将显示在您的报告中。

事实表应该总是有度量,还是它也可以有一些描述性的属性,这样我就可以避免上述步骤?

-- 这也是可以的,没有错,只要属性不要太多。请注意,这取决于您的记忆力、性能等。

关键是在答案 1 和答案 2 中解释的设计之间找到您需要的平衡。

【讨论】:

你的第一点是否意味着你正在计算东西? 假设您正在对事实表中的度量列进行求和,并将其与维度表连接以获得描述性属性,您的结果将出现在报告中(将由浏览器,报告软件等)您还可以对事实表进行聚合并将它们存储在单独的表中,例如聚合表并将该表与维度表连接以获得描述性数据。【参考方案2】:

只需添加一个垃圾维度,您基本上将所有其他不适合现有维度的内容放入其中,并且您不想随着时间的推移进行跟踪。

https://en.wikipedia.org/wiki/Dimension_(data_warehouse)#Junk_dimension

垃圾维度是由以下属性组成的维度表 不属于事实表或任何现有维度 表。这些属性的性质通常是文本或各种 标志,例如非泛型 cmets 或只是简单的是/否或真/假 指标。这些类型的属性通常在所有 已确定业务流程中的明显维度 因此设计师面临着在哪里放置的挑战 这些不属于其他维度的属性。

【讨论】:

以上是关于我可以有一个描述性属性很少的事实表吗的主要内容,如果未能解决你的问题,请参考以下文章

我应该将所有外键从主事实表复制到其他相关表吗?

我需要定义事实表或维度表吗?

星型模式中作为事实表的客户维度

事实表中的列问题

12个很少被人知道的CSS事实

我可以将模型关联到 laravel 中的通知表吗?