2.2.3 数据集关系

一个数据集表示一种信息,信息之间的关系就表示为数据集之间的关系。例如

  • 在一个订单中购买多个商品,订单和订单商品存在主从关系
  • 在编辑订单时,从客户列表中选择一个客户,因此订单和客户之间存在着关联关系
  • 行政区域(国家、省、市)之间存在上下级关系,即树形关系

2.2.3.1 主从关系

1. 主从数据集

主从关系涉及主数据集和从数据集,从数据集依赖于主数据集。

  • 主数据集用于存储主要信息,如订单信息(订单编号,下单日期,客户ID等)
  • 从数据集用来存储订单明细信息(订单中的产品、单价、数量、金额等)。主从关系可以是一主一从,一主多从,也可以是主从从。

例如:主数据集如下,其中主键fid列是主表的主键列,用于和从表的外键列进行关联。

从数据集如下,其中销售订单saleOrder列是外键列,即主从表的关联列。

2. 设置主从数据集

在从数据集上选择一个数据集作为主数据集,就相当于设置该数据集为从数据集。选择主数据集后,系统自动给从数据集增加一列(外键列),列名称为主数据集名称,列标识为主数据集标识,生成列映射的字段名为主数据集标识+Id,该列存储主数据集主键列的值,从而与主数据集形成主从关联。

主从数据集是强关联,表现在

  • 主数据集删除数据时,从数据集中与之关联的数据也会自动删除
  • 新增从数据时,从数据自动与主数据关联

2.2.3.2 树形关系

1. 树形数据集

现实世界中我们经常会遇到一些具有上下级关系的事物,比如行政区域(国家、省、市),通常我们会用“树”的形式来展现这种数据,如下图所示

最简单的树形数据,只需要3列数据就可以形成,即主键,父的主键和显示名称列。如下图的前三列。

上图中的列说明如下

  • 父主键列 树形数据一般是逐级加载的,首先显示出根,根就是父ID为空的数据。展开根,显示根的下级,就是加载父ID=根的主键的数据。以此类推,通过不断的加载数据,展示出一整棵树。
  • 全路径列 只有主键和父的主键的树形数据,被称为父子树,它的优点是支持无限多级,缺点是查找数据经常需要使用递归算法。而增加全路径列可以解决这个问题,即以路径的形式存储前面每一级的数据,如上图中的第4、5列。第4列存储的是前面各级的主键列的值,第5列存储的是前面各级的名称列的值。有了这些全路径列,就可以对树形数据进行各种各样的查找了。
  • 层级列 作为树形数据,根节点的层级是1,根的下级节点的层级是2,以此类推,每一个节点都对应了一个层级,如上图中的层级列。
  • 叶子节点列 末级节点称为叶子节点,可展开节点为非叶子节点,如上图中的是否叶子节点列。
2. 设置树形数据集

在数据集上选中树形数据复选框,就表示设置该数据集为树形数据。

树形数据的配置项如下图所示,定义父列、全路径ID列、层级列、叶子节点列、其它全路径列。

  • 插入数据时,只需插入主键、名称、父ID列的值,插入后,系统自动计算全路径ID列、层级列、叶子节点列及其它全路径列的值。
  • 修改数据后,系统同样会自动计算全路径ID列、层级列、叶子节点列及其它全路径列的值。

2.2.3.3 关联关系

1. 关联引用

关联引用适用于以下的场景

  • 在编辑订单时,从客户列表中选择一个客户,通常的做法是:在页面上添加下拉框select组件,从客户表中获取数据,作为下拉框的option,选择一个客户,将客户ID存入订单的客户ID列。

  • 通常在订单中只存储客户ID,在显示订单时,用订单表关联客户表,通过订单表的客户ID等于客户表的ID,查询出客户名称等信息。

上面的场景说明,订单数据集和客户数据集存在引用关系,即订单数据集引用客户数据集。针对上述场景,系统提供了关联引用设置,通过设置关联引用可以实现:

  • 页面上只需添加输入框组件,系统根据设置的关联引用,会自动展现为下拉框和/或弹出框,同时支持数据过滤和多列赋值。
  • 根据已经设置的关联引用,增加输出数据集的设置,在订单数据集的数据列中就会包括客户数据集的列,可以直接使用,无需在订单数据集上设置和客户数据集的关联查询。
2. 设置关联引用

在订单数据集的客户ID列中,设置关联引用客户数据集。设置界面如下图所示:

在关联引用设置界面中,可以设置:

  • 设置选择数据
    • 选择引用的数据集:客户数据集
    • 设置下拉框组件用到的绑定数据列:主键和绑定显示列:客户名称
    • 下拉/弹出中显示的数据的过滤条件:项目ID=a01
    • 设置客户数据存储到订单数据的映射关系(支持多列):将客户的主键列赋值给订单的客户ID列
  • 设置选择效果
    • 展示类型:下拉选择 或 弹出选择 或 下拉和弹出两种选择
    • 下拉和弹出中显示的列(支持多列):显示2列,客户名称和类型
    • 单选还是多选,以及多选的分隔符

经过上面的设置,运行效果如下:

上面提到的增加输出数据集的设置,参考 2.5.3 关联查询。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""