Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何解决维度表之间的一对多关系_Sql_Data Warehouse_Dimensional Modeling - Fatal编程技术网

Sql 如何解决维度表之间的一对多关系

Sql 如何解决维度表之间的一对多关系,sql,data-warehouse,dimensional-modeling,Sql,Data Warehouse,Dimensional Modeling,我有下面的场景。 我有一个事务表,其中包含客户级别的事实。 将多个客户分组到客户组中。每个客户群都与单个产品相关联 因此,我们在产品和客户群之间有一对多的关系。 客户群和客户之间的一对多关系。 Txn事实处于客户级别 因此,如何在不复制数据的情况下对客户和产品信息进行维度建模 谢谢。您的事实是否真正属于客户层面,或者是否/应该与客户群体相关?例如,账户余额事实可以是一个账户的账户余额,这是一个产品,如果联合账户可以是一个客户群的账户余额。如果是这样,我会关注你的事实,而不是客户与产品的关系(这本

我有下面的场景。 我有一个事务表,其中包含客户级别的事实。 将多个客户分组到客户组中。每个客户群都与单个产品相关联

因此,我们在产品和客户群之间有一对多的关系。 客户群和客户之间的一对多关系。 Txn事实处于客户级别

因此,如何在不复制数据的情况下对客户和产品信息进行维度建模


谢谢。

您的事实是否真正属于客户层面,或者是否/应该与客户群体相关?例如,账户余额事实可以是一个账户的账户余额,这是一个产品,如果联合账户可以是一个客户群的账户余额。如果是这样,我会关注你的事实,而不是客户与产品的关系(这本身就是事实)。对于这两种情况,客户群都可以用“桥接”表表示为一种解决方案(因此请研究这些解决方案),但还有其他解决方案。注意,“不复制数据”不应该是维度模型中的主要问题。感谢Rich的回复。我被要求制作一个模型,以报告产品级的txn事实。这就是为什么它变得更加棘手。我假设可以使用产品客户键构建桥接表,以链接事实(因为事实已经包含客户id)和产品表。这是正确的接近方式吗?我对维度模型的理解是维度应该是较低的粒度,并与具有0/1对多关系的事实相关联。这就是我在没有重复数据的情况下提到的原因。为什么不考虑复制?是否存在产品不在交易事实中的原因?在这种情况下,桥接表只是客户群的表示。然后,客户组密钥(来自桥接器)可以参与事实。如果你愿意的话,这个事实可以是代表客户群体和产品之间关系的事实。桥接表不是产品和客户之间的桥梁——这本身就是一个事实。维度不是“低粒度”,它只是真实维度中每个项目的一行。关于1:许多关系,您是对的……但是客户群和产品之间的关系复制不应该是一个问题——如果您需要复制数据,只要模型有意义就可以了。我想我可以在这方面为您提供更多帮助,但您需要更新您的问题,以包括您正在描述的情况的示例,如您的交易事实描述(或打算描述)的内容,以及客户群与产品相关的含义。很高兴提供更多信息。谢谢Rich。让我给你更多的见解。我有txn表,在客户级别几乎没有度量。客户按客户组分组。产品销售给多个客户群(1对多)。每个客户群由一名区域级顾问管理。我需要按地区和产品生成一份包含txn度量值的报告。我如何有效地对其进行建模?您的事实是否真正在客户层面,或者它们是否/应该真正与客户群体相关?例如,账户余额事实可以是一个账户的账户余额,这是一个产品,如果联合账户可以是一个客户群的账户余额。如果是这样,我会关注你的事实,而不是客户与产品的关系(这本身就是事实)。对于这两种情况,客户群都可以用“桥接”表表示为一种解决方案(因此请研究这些解决方案),但还有其他解决方案。注意,“不复制数据”不应该是维度模型中的主要问题。感谢Rich的回复。我被要求制作一个模型,以报告产品级的txn事实。这就是为什么它变得更加棘手。我假设可以使用产品客户键构建桥接表,以链接事实(因为事实已经包含客户id)和产品表。这是正确的接近方式吗?我对维度模型的理解是维度应该是较低的粒度,并与具有0/1对多关系的事实相关联。这就是我在没有重复数据的情况下提到的原因。为什么不考虑复制?是否存在产品不在交易事实中的原因?在这种情况下,桥接表只是客户群的表示。然后,客户组密钥(来自桥接器)可以参与事实。如果你愿意的话,这个事实可以是代表客户群体和产品之间关系的事实。桥接表不是产品和客户之间的桥梁——这本身就是一个事实。维度不是“低粒度”,它只是真实维度中每个项目的一行。关于1:许多关系,您是对的……但是客户群和产品之间的关系复制不应该是一个问题——如果您需要复制数据,只要模型有意义就可以了。我想我可以在这方面为您提供更多帮助,但您需要更新您的问题,以包括您正在描述的情况的示例,如您的交易事实描述(或打算描述)的内容,以及客户群与产品相关的含义。很高兴提供更多信息。谢谢Rich。让我给你更多的见解。我有txn表,在客户级别几乎没有度量。客户按客户组分组。产品销售给多个客户群(1对多)。每个客户群由一名区域级顾问管理。我需要按地区和产品生成一份包含txn度量值的报告。如何有效地对其进行建模?