什么是关联多对多维度?
让我们用一个例子来考虑第一种多对多场景类型。经典场景涉及两个实体:银行客户和银行账户。考虑客户可以有多个账户,账户可以有多个客户。当一个账户有多个客户时,他们通常被称为联名账户持有人。
建模这些实体是直截了当的。一个维度类型的表存储帐户,另一个维度类型的表存储客户。作为维度类型表的特征,每个表中都有一个标识列。为了模拟两个表之间的关系,需要第三个表。该表通常被称为桥接表。在这个例子中,它的目的是为每个客户-帐户关联存储一行。有趣的是,当这个表只包含标识列时,它被称为无事实事实表。
这是三个表的简单模型图。
第一个表名为账户,它包含两列:AccountID和账户。第二个表名为账户客户,它包含两列:AccountID和客户号。第三个表名为客户,它包含两列:客户号和客户。任何表之间都不存在关系。
添加了两个一对多关系来关联表。下面是相关表格的更新模型图。名为的事实类型表交易已添加。它记录账户交易。桥接表和所有标识列都已隐藏。
为了帮助描述关系过滤器传播是如何工作的,已经修改了模型图以显示表行。