关联子表

管理数据时,我们不会把所有数据都存在一张表中,因为会导致单表数据量过大,不便后续使用。而是使用多张相互关联、引用的表,来存储数据。零代码系统使用本表和子表模型,可以理解为本表存储一级信息,子表存储二级信息。

根据本表和子表中存储的数据关系,通常可以分为1:1关联,1:N关联。 1:1关联:本表中的一条数据记录,对应子表中的一条记录。例如:学生账号表通过学号字段1对1关联学生信息表。 1:N关联:本表中的一条数据记录,对应子表中的多条记录。例如:订单表通过购买商品字段1对N关联订单明细表。

场景需求

在描述一个订单时,经常会使用“订单”和“订单明细“的本表和子表结构。“订单”表包含用户信息,购买商品的详情,和订单总金额。“订单明细”表包含商品名称,数量和总价。

建立子表关联

  1. 创建两张表:订单本表,订单详情子表。

  2. 编辑“订单”本表。“订单明细”使用关联组件,关联“订单明细”子表。因此,配置基础属性如下:关联子表选择订单明细;关联子表记录数设置多条,因为一个订单会购买几样商品,每样商品不等的数量;子表配置,展开后,选择子表中需要出现在本表中的字段,不需要的出现的不选择;权限配置,勾选新增,因为是通过订单向订单详情中加入新的数据记录,并非选择子表中已有数据记录。 img

  3. 编辑“订单详情”子表。“产品”使用关联组件,关联“产品库”子表。因此,配置基础属性如下:关联子表选择产品库;关联子表记录数设置单条,因为一个订单明细只对应一样商品;子表配置,展开后,选择子表中需要出现在本表中的字段,不需要的出现的不选择;权限配置,勾选关联,因为是要从产品库中选择商品购买,并非要新建一种商品。 img

  4. 完成上面的配置后,返回订单表,创建一个新订单,可以看到本表和关联子表的互动关系。订单本表在新增的时候关联到订单详情子表,在订单明细本表中选择产品的时候关联到产品库子表。 img img img

双向关联

  1. 返回订单明细表发现,当有多个订单时,无法区分订单明细。需要引入订单编号帮助做区分,就需要将“订单”表反向关联到“订单明细”子表上。 img

  2. 创建双向关联时,需要从已经建立关联关系的本表中发起。选择编辑“订单详情”子表。 img

  3. 选中“订单明细”关联组件控件,基础属性设置,找到“双向关联配置”。勾选后,“订单明细”表中会自动配置一个关联子表控件,标题,就是这个关联子表控件的名字;子表配置,配置的是,希望出现在子表中的本表字段;权限配置,不勾选任何配置,因为不希望从“订单明细”子表中进行任何对本表的操作。 img

  4. 配置双向关联后,订单表引用了订单明细,订单明细表中也有了订单表中的订单编号字段。 img img

为选择记录配置搜索

  1. 选择关联子表记录时,如遇到数据量大的情况,需要配置搜索功能。选中关联组件,在高级属性中找到“搜索配置” img

  2. 按业务需求配置对子表的搜索字段 img

  3. 在选择子表记录进行关联时,利用配置的搜索进行数据筛选 img img

计算顺序

假如,子表中使用了子表汇总控件,如果主表和子表是单向关联,子表汇总控件是异步计算;如果主表和子表是双向关联,子表汇总控件是同步执行。

results matching ""

    No results matching ""