数据仓库尺寸设计

时间:2016-09-19 13:38:15

标签: data-warehouse

我希望有人能帮助我。

假设我们的车辆数据仓库中有2个维度:TRUCKS和PACKAGES。两者都是Type 2 SCD。

dim_TRUCKS包含以下数据:

TRUCK_KEY   NAME   PRICE
    1       Ram    45000
    2       F150   48000
    3       Tundra 43000

dim_PACKAGES包含以下数据:

PACKAGE_KEY   NAME     PRICE 
    4       Offroad    4000
    5       Luxury     7000
    6       Sport      2000

商业规则和要求规定每个TRUCK仅提供一个包装。 (我知道这不现实,但它最能传达我所面临的特定业务困境)。

每个TRUCK提供的包装可以随时间变化。

所以问题是设计和实现这个的最佳方法是什么?

我最初的想法是简单地将PACKAGE_KEY添加到dim_TRUCKS,例如:

TRUCK_KEY   NAME   PRICE   PACKAGE_KEY   
    1       Ram    45000        4
    2       F150   48000        4
    3       Tundra 43000        6

显然,我最终得到的是SCD的属性基于另一个SCD。这是糟糕的设计吗?还有更好的方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我不会对业务规则one package only on one truck建模。我希望将PACKAGETRUCK设置为fact表中引用的维度。

<强>原因

如果业务规则在未来发生变化(这种情况通常很高),您可能需要进行更多改造,而不是现在保持简单。

你也是对的,总是尽量保持复杂性,因为你可以选择,我会采用不那么复杂的方式直接引用维度。