历史版本10 :多路径数据关联 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

在用户进行数据添加和处理时,由于有实际业务逻辑、本身数据库并未添加完整的主外键关系,只是直接读取原始数据并且只写上对应表的关联字段,或者由于BI支持从多数据源中加载数据,从不同数据库读取的数据表之间或者数据库表与上传的EXCEL文件并没有建立主外键关系时,会产生多路径问题。

多路径对于业务分析来说是需要尽量避免和优化的,因为多路径对导致本身复杂的业务更加不易理解和分析。

1.2 功能简介

 FinBI 提供了多路径设置,让用户在添加表后预先把表间关系梳理,以方便后期使用,避免多用户重复构建关联关系。

2. 示例编辑

2.1 产生多路径

在添加数据库表时,若数据库已经设置了表的对应主外键关系,则可能会因为直接读取原始数据而导致多路径。本例以内置 DEMO 中的示例来创建一个多路径以此进行多路径设置操作。

比如在已有的销售 DEMO 业务包中对合同事实表销售事实表创建1:N的关联,关联字段为客户ID ,详情参见:关联视图(单表) ,如下图所示:

47.png

2.2 选择使用路径


在业务包中数据表的关联关系处,提供了标识主键的方法,外键可直接通过字段建立表间关联来体现。如下图所示:

222

建立关联关系时,可以设置表间关联关系为一对一或一对多,即在关联操作时,可以选择一方是1还是N来标识关联方向(1为主表,N为子表)。从而确保建立的关联关系与用户实际业务逻辑、数据库存储逻辑保持一致。表间关联关系的设置可参考关联视图(单表)

222

注:如果用户标注的信息与实际数据不符,如非distinct字段设置为主键等信息,在表更新时会自动纠正,但是会导致部分相关设置不生效。

自助数据集选字段,未选择使用路径,

3、示例-根据业务逻辑设置编辑

当前某公司业务上有客户表合同表两个表,而且这两个表需要建立关联关系。直接读取数据库数据并建立关联,没有进行区分主子表关系和设立主键。但是因为存储数据不全,直接判断关联字段的数据就发现客户表与合同表的数据都是一对一匹配的,即一个客户对应一个合同,由此产生了很多冗余的多路径情况,而且这些多路径很多是错误且不存在于业务逻辑中的。

但从公司真实业务逻辑来说,客户表是主表,合同表是子表,即同一个客户允许与多个合同关联,反之则不行。我们就需要按照这个实际逻辑到业务包的表设置界面进行操作设置。

建立表间关联关系的操作,具体参见 关联视图 。

3.1 读取主外键

直接读取原始数据库表的主外键信息,或者字段是否设置唯一约束。如果数据库中已经添加过,则可以直接读取到业务包的数据表中。如果有外键,且对应表也在业务包中,则可以直接建立数据关联关系。

3.2 设置主键

如果添加的数据表没有主外键等信息,那么添加到在数据表设置页面,可以由用户进行手动添加。

3.3 匹配关系及关联方向

为数据表添加数据关联信息界面,可以设置数据匹配关系是一对一或一对多,而且如果是一对一的情况,也可以选择关联方向,即A,B表数据都是一对一,可以根据实际业务逻辑设置方向为A->B,而不采用B->A的关联关系,即采用A关联B用取1:N的选择。