📜  事实表和维表的区别(1)

📅  最后修改于: 2023-12-03 15:06:19.605000             🧑  作者: Mango

事实表和维度表的区别

在数据仓库中,常常会用到事实表和维度表,两种表的设计和使用有很大的区别。

事实表

事实表就是记录数据的事实,例如订单表中记录订单的一些基本信息,如订单ID、订单金额、下单时间等等。这些数据通常都是数字类型,且是可以聚合的,以方便日后的分析和决策。

特点
  • 包含大量的数值型数据。
  • 包含日期时间、数值型和字符串型数据。
  • 因为数据量很大,通常采用星型或雪花型的表结构。
  • 因为数据需要被聚合,所以通常需要预聚合或索引。
例子

以一个订单表为例,它的结构可能是这样的:

| 订单ID | 下单时间 | 商品ID | 商品数量 | 商品单价 | 返现 | | ------ | -------- | ------ | -------- | -------- | ---- | | 1001 | 2022/1/1 | 1234 | 2 | 19.99 | 0 | | 1002 | 2022/1/2 | 5678 | 1 | 159.99 | 5 | | 1003 | 2022/1/3 | 3456 | 3 | 49.99 | 10 |

维度表

维度表记录事实表中的数值数据的相关维度信息。比如,在订单表中,商品ID可能是一个维度,维度表中就会记录商品名、商品分类、商品子分类等信息。维度表中的数据通常是描述性的,但也可以包含一些可计算的字段。

特点
  • 包含描述性的数据。
  • 包含少量的数值型或可计算的数据。
  • 对每一种维度,通常只需要建立一张维度表。
  • 通常采用扁平的表结构,而非星型或雪花型。
例子

以商品维度表为例,它的结构可能是这样的:

| 商品ID | 商品名 | 商品分类 | 商品子分类 | | ------ | --------- | ------------ | ----------- | | 1234 | 商品A | 主食 | 面 | | 5678 | 商品B | 小吃 | 饮料 | | 3456 | 商品C | 水果蔬菜 | 水果 |

区别

事实表和维度表的设计目的不同,因此有以下区别:

  1. 数据类型不同:事实表包含大量的数值型数据,而维度表通常只包含少量的数值型或可计算的数据。

  2. 表结构不同:事实表通常采用星型或雪花型的表结构,而维度表通常采用扁平的表结构。

  3. 数据内容不同:事实表中记录数据的事实,而维度表记录事实表中的数值数据的相关维度信息。

  4. 表的数量不同:事实表可能有多张,而对于每一种维度,通常只需要建立一张维度表。

总结

事实表和维度表都是数据仓库中常用的表,并且它们的设计和使用也有很明显的区别。了解事实表和维度表的不同之处,有助于我们更好地设计和使用数据仓库中的表,从而更好地进行数据分析和决策。