如何构造表关系

表之间是分层关系。一个父表位于层级最顶端,它可以关联至多个子表。

关联表后,您可以访问和分析关联表中任何域组合中的数据,就如同它们位于单个表中一样。

关联表一般指南

  • 只允许有一个父表。
  • 可以将子表关联至其自身的子表(后者是父表的孙表),依此类推。
  • 最多可以有 18 个表彼此关联,包括父表。

关联对话框以图表方式显示了工作区域,以便您轻松地管理多个关联。

示例

在下图中,将采用以下方式关联表和键域:

父表 公共键域 子表 公共键域 孙表
Accounts Receivable Contract_number Contract Sales_rep_number Sales
Customer_number Customer    

关联表详细指南

构建成功显示您所需数据的关系需要一定的计划时间,尤其是关联涉及到大量表时。在您构建关联时,以下指南可能有所帮助。

键域之间的匹配

认真考虑每个表对中的公共键域、它们包含的值的类型以及可能生成的匹配。关键字域之间匹配项的完整度和准确性会直接影响任何后续信息查阅或分析的质量。

颠倒父-子关系

考虑将某个表作为父表,另一个表为子表的意义;如果将两个表的位置颠倒过来,结果会有什么不同。

请记住,Analytics 中的关联是多对一类型。一个或相同的父键值将仅关联至第一次匹配的子键值。出现的匹配的其他子键值以及包含它们的记录将被忽略。

如果存在合法的重复子键值,则将子表作为父表可能会生成更为完整的结果,前提是当前的父表不包含合法的重复项。

如果两个表都包含合理的重复项,则使用多对多联接来联接表可能更好。

表在关联层次结构中的位置的影响

在关联层次结构的每个级别,一个子表都可以是下一个较低的层次结构级别的表的父表。

由于父表和子表之间是多对一的键值匹配,所以随着表在层级中逐步向下定位,在最终的关联中忽略其更多数据的可能性会增加。如果所有通用关键字域中的值之间存在一对一的对应,则多对一匹配这种潜在的累积效果并不是问题。

如果您希望确保关联中包括了表中的所有记录,请将该表设为父表。

使用中间表

如果您想要关联两个缺少通用关键字域的表,可以使用一个或多个中间表来构建关联。

在上图中,Contract 表充当了将 Accounts Receivable 表和 Sales 表间接关联的中间表。您可能对中间表中的数据感兴趣,也可能不感兴趣。

基本关联的变化

除基本的父子关系关联外,还允许或或不允许以下类型的关系关联:

两个表的单个实例只能有一个关联。

如果您在其他时间尝试关联同一表对,则会禁止操作并显示以下消息:

“其中一个文件已位于关联之中。要创建另一个关联,请添加该文件的另一个实例。”

您可以单击关联对话框中的添加表按钮并选择相应的表,以添加所需表的另一个实例。额外添加的表实例会带有递增的数值后缀或您选择的名称。

另外,您可以在导航器中复制相应的表布局,并且将该副本添加到关联对话框中。

使用多个键域关联表
  • 如果关键字域连接了起来,可以使用组合中的两个或多个关键字域来关联表。

    要了解更多信息,请参考多个关键字域结合使用

  • 父表可以关联至同一子表的两个(或多个)单独的实例。该关系可以介于:
    • 同一个父键域和两个不同的子键域之间
    • 两个不同的父键域和同一个子键域之间

    要了解更多信息,请参考单独使用多个关键字域

将表关联到其自身 可以将一个表关联至其自身的单独实例。
Analytics 14.1 帮助