我对数据仓库完全陌生,我不知道我是否做得对。
我正在设计一个基于供应商的电子商务平台,其中供应商会添加不同的产品,客户会购买它们,客户可以立即从不同的供应商订购,每个订单都有订单,客户,产品和供应商信息以及佣金支付状态(供应商为每次产品销售支付的佣金)。
我已使用星型模式将OLTP转换为OLAP,在星型模式中,我有以下事实和维度表。
事实销售表:
(在此表中我保留了产品销售记录,我必须保持记录,无论供应商是否支付了交易佣金)
这个佣金支付表在我的OLTP订单详细信息表中,一旦供应商支付了他销售的特定产品的佣金,状态就是如此,这就是系统如何产生利润。
我有以下尺寸:
答案 0 :(得分:0)
你可以制作一个佣金支付状态维度,但很多人会认为这只有一个专栏。但是,您确实应该避免将这种文本类别放入事实表中。
相反,标准技术是将各种小标志和状态收集到一个维度中,称为“垃圾”维度。它使维度模型更易于使用,具有这些细节的维度。
这是误导性的命名,因为这些标志仍然可用于分析:只是它们不属于其他维度。你可以通过在每个组合中创建一行来构建它们。
在你的情况下,你只有其中一个开始,但随着你的设计进展,你可能会发现更多的候选人包含在'垃圾'维度。您可以将此维度称为“订单详细信息”或“订单状态”,具体取决于您在维度中包含的内容,使用其代理键和至少一个支付佣金状态列。