解决数据仓库中的一对多关系?

时间:2017-06-06 02:36:31

标签: relationship one-to-many data-warehouse star-schema

我是数据仓库的新成员。我正在设计模型改变Star Schema。 我有一张2张桌子:合约表&抱怨表。一个合同可以在投诉表中具有一个或多个值。你可以在下面看到2张照片。

在facttable中,1份合约只有一行。抱怨表每个contract_id可以有1个或多个值。我试过过桥牌桌,但还不够好。 谢谢所有

http://prntscr.com/fgdnpb(Conplain table)

http://prntscr.com/fgdorh(合约表)

我的Skype:dinhhungdigital

2 个答案:

答案 0 :(得分:1)

您将事实表和维度表混淆。您的维度应为“合同”,您的事实表应为“投诉”,在Contract_Id上以一对多方式连接(如启动架构所要求的)。

Learn about Star Schema Design

答案 1 :(得分:0)

你应该有一个DimContract& FactContract,以及DimComplaint& FactComplaint。

DimContract可能只包含ContractID(简并维度),但Code也可能属于此处,因为它看起来依赖于ContractID。 FactContract连接描述合同的所有维度属性

  • DimContractType,
  • DimDate as DimDateContractSigned
  • DimCustomer?
  • DimSalesPerson?

DimComplaint可能包含ComplaintID和Code。如果网站是自由文本,它也可以包含在这里,如果用户从列表中选择它,那就是事实。 FactComplaint连接描述投诉的所有维度属性:

  • DimComplaint,
  • DimContractID,
  • DimServiceType,
  • DimTitle,
  • DimStatus,
  • DimDate为DimDateOfComplaint,
  • [DimWebsite,如果适用]

在此示例中,由于投诉引用合同而合同引用客户,因此您可以查看客户与投诉之间的关系,而无需直接从FactComplaint引用DimCustomer。