数据模型将来源多处的数据进行归集时,是有序的归集,这种有序归集需要通过模型表间的关联关系来确定。
表关系区(下图红框所标识)中显示了当前数据模型包含的所有模型表:
表关系区中的各模型表,表头底色为蓝色表示维度表,表头底色为绿色表示事实表,模型表在表关系区的底色默认是蓝色,只有该表有字段设置为度量后才会变更成绿色底色。
模型表的来源及实现请参见:数据模型-私有查询。
表关系类型
数据模型目前支持的模型表间关系类型,主要有如下几种:
1、多对一/一对多:这两个关系实质一样,主要是看连接关系时是主表在前还是从表在前。如下我们有两张数据表“订单表”和“订单明细表”:
订单表 | 订单明细表 |
---|---|
我们从关联字段“OrderID"来看:”订单表“中每一个”OrderID"对应“订单明细表”中多条记录,因此我们说“订单表”与“订单明细表”是一对多的关系,或者说“订单明细表”与“订单表”是多对一的关系。因此这两个表我们可以有如下两种方式定义:
- 如果“订单表”在左边,“订单明细表”在右边,我们需要选择”一对多“的关系。
- 如果”订单明细表“在左边,”订单表“在右边,我们需要选择”多对一“的关系。
2、一对一(内连接)/一对一(外连接):关联字段匹配后,内连接关系将会删除未完全匹配数据,外连接会将未完全匹配数据以”空“补充。如下我们有两张数据表“家庭表”和“学生表”:
家庭表 | 学生表 |
---|---|
这两个表通过“StudentID"分别建立一对一的内连接或外连接关系,其数据效果分别如下:
一对一(内连接)效果: “学生表”中没有匹配的7-10号数据被删除。 | |
一对一(外连接)效果: “家庭表”中7-10号数据补空值。 |
设置表连接
设置模型表关系的方法有如下两种:
1、拖拽连接线:从某模型表中的左侧或右侧锚点拖拽到目标模型表。
2、表关系菜单:在模型表更多菜单或右键菜单中选择 新建表关系。
表关系图解
在Smartbi数据模型关系区中,关系线中的白圈代表一,蓝圈代表多。
但是一对一关系不在此规则之列:
一对一(内连接) | |
一对一(外连接) |
菜单操作
表关系区的模型表支持“更多菜单(或右键菜单)”操作。
操作入口:在模型表中单击 更多 按钮,或者右键,弹出菜单。
菜单命令说明如下:
菜单命令 | 说明 |
---|---|
编辑 | 用于进入到当前模型表对应的私有查询的编辑界面。编辑详情请分别参见:导入文件、SQL查询、即席查询、脚本查询、存储过程查询、ETL高级查询。 |
删除 | 用于将当前模型表从数据模型中删除。 |
复制 | 用于复制当前模型表:单击 复制 命令后,系统自动生成副本,且名称为“模型表名称+数字”,如“查询SQL2”。 当私有查询需要在原查询基础上进行改动,从而实现高效复用的情况下,会用到该功能。 |
转换为ETL高级查询 | 用于将当前模型表转换成ETL高级查询。 ETL高级查询的详情请参见:ETL高级查询。 |
新建关系 | 用于新建设置当前模型表与其它模型表间的关系。 该菜单只在表关系区含有两个及以上的模型表时才显示。 |
属性 | 用于查看当前模型表的属性,允许修改当前模型表的“名称”。 |