我希望有人能帮助我。
假设我们的车辆数据仓库中有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。这是糟糕的设计吗?还有更好的方法吗?
非常感谢。
答案 0 :(得分:0)
我不会对业务规则one package only on one truck
建模。我希望将PACKAGE
和TRUCK
设置为fact
表中引用的维度。
<强>原因强>
如果业务规则在未来发生变化(这种情况通常很高),您可能需要进行更多改造,而不是现在保持简单。
你也是对的,总是尽量保持复杂性,因为你可以选择,我会采用不那么复杂的方式直接引用维度。