桥接表VS Star Schema数据模型

时间:2019-09-20 12:24:06

标签: data-warehouse dimensional-modeling snowflake-data-warehouse star-schema-datawarehouse

众所周知,桥接表是处理与事实表的度量事件的粒度相关联的具有多个值的维的强大方法。 通过简单的方式,桥接表使您能够解析尺寸之间的多对多关系。 目标是创建一个性能良好且易于查询的数据模型。在许多情况下,必须使用星型架构,因为我们可能会遇到性能问题。 我有以下尺寸:

  • 员工
  • 功能
  • 角色

员工可以有许多当前职能:一个主要职能,另一个是次要职能。 员工可以担任许多当前职务。

我的事实将记录任何员工的职能和角色的任何更新。 我的模型如下:  enter image description here

我的Fact_Employee将为特定员工包含不同的当前记录,如下所示:

FactID EmployeeID FunctionID RoleID BIStartDate BIEndDate CurrentRecord
1      544        390        56     20/09/2018  NULL      1
2      544        390        11     03/10/2018  NULL      1
3      544        67         56     ...         ....      1
4      544        67         11     ...         ....      1

对于EmployeeID = 544,其当前函数FunctionID = 390,67和 他当前的RoleID = 56,11,我将BIStartDate和BIEndDate与DateDimension链接了两次,如上面的模型所示。

我的问题: 就我而言,建议在DimEmployee和DimFunction / DimRole之间使用桥接表? 如果我愿意继续使用模式模型,那么我的模型演示是否正确/优化了? 在我的事实中,如何区分功能的EndStartDate和角色,因为我认为我使用的是笛卡尔积,而我的事实将包含大量数据?

0 个答案:

没有答案