首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接处于1-N关系中的事实和维度表

如何连接处于1-N关系中的事实和维度表
EN

Stack Overflow用户
提问于 2015-11-06 15:52:21
回答 1查看 213关注 0票数 1

我有一个购买FactTable与一些措施和尺寸键。然后,还有另一张表:折扣表。购买FactTable与折扣表是一个1-N的关系(对于每一次购买,我可能已经购买了几个折扣项目)。折扣表有一些属性(描述、注意事项)和一些数值(例如:$中的折扣),我想把它们卷起来。

  • 如果我在这个折扣表中创建一个维度,我会在一个总计数中得到一个错误的购买计数数(膨胀,每一个折扣项目一行)。
  • 如果我在这个折扣表中创建了一个单独的事实,我如何查询这两个事实表(目前它们不共享任何维度,所以我不能使用一致/共享的维度进行演练)。
  • 如果我创建一个退化维度,我们将回到第一个场景。

将桥接表与: BridgedKey,DiscountKey,折扣在$,其他“措施”。解决我的问题?

附注:这个链接帮助选择了一个桥接表,但我不确定它在我的情况下是否有效(因为我需要从折扣表中汇总一些数字属性)。

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-07 09:56:42

我的经验将倾向于有两个事实表purchasepruchase_detail的设计。

每购买一次有属性的一行

代码语言:javascript
复制
 purchase_id  -- unique ID 
 purchase_date  
 customer_id
 ...

PURCHASE_DETAIL每购买1:N行,并存储定价细节。

代码语言:javascript
复制
 purchase_id -- corresponding purchase
 account_type -- dimension describing sales price and all discount types
 amount
 ....

金额有适当的标志;销售价格为正数,折扣为负数。

示例

代码语言:javascript
复制
 purchase_id    account_type    amount
 1              sales price     100
 1              discount1       -5
 1              discount2       -1

使用此设计,您可以安全地计算购买量(在购买表上)、总价格之和(在PURCHASE_DETAIL上)和作出所有种类或详细的折扣报告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33570611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档