链接表记录

Prev Next

通过关联记录建立表记录之间的关系

在本指南中,您将了解

  • 什么是关联表记录
  • 关于关联记录性能的注意事项
  • 如何链接表记录

概述

Tulip 表用于管理各种数据,包括工作单、技能矩阵、物料清单等。两个表之间通常存在可定义的关系(例如:总装和子装数据、班次排班与操作员信息数据)。

通过“关联记录”,您可以定义、管理并可视化不同表之间的这些关系。

用例

1. 在交互式表中显示(来自辅助表的)引用数据 * 可在无需重复列的情况下显示主数据信息 * 仅应用于关键信息

Reference data with linked records

2. 创建血统记录/数据 * 借助关联记录,对血统数据进行筛选视图更为便捷 * 建议仍将父记录 ID 作为列存储,以便进行查询/聚合(参见限制条件)

3. 通过“属于”筛选条件轻松实现交互式表格筛选

Linked record interactive table filters

关于关联记录性能的注意事项

Low performance of linked records observed at scale

While linked records provide the ability to relate tables to one another, Tulip has seen significant performance issues when this feature is used at large scale (i.e. several linked record columns in a Table, several hundred thousand records in a table).

限制

请务必注意,关联记录在使用以下 Tulip 功能时存在某些限制:

性能* 表中过多的关联记录列可能会导致性能问题* 由于无法进行数据导入且API格式要求严格,管理起来可能更为复杂

应用触发器

  • 无法直接加载 1:1 关系中的记录
  • 即使是一对一关系,所有关联记录字段均为字符串数组
  • 若记录已关联,则不会显示错误信息

导入/导出

  • 无法通过CSV导入功能导入关联记录
  • 通过CSV导出会导致每个关联记录字段变成字符串数组

表查询和聚合

  • 无法对关联字段进行聚合
  • 无法对关联字段进行筛选

分析* 分析功能每次只能引用一张表。您无法使用关联记录同时分析来自多张表的数据。

用户体验限制

建立关联记录关系后,唯一能查看关系类型(一对一、一对多等)的方式是在“记录卡片视图”中(即在“表格”页面中点击表格记录或编辑表格列名时显示的界面)。

关联记录的替代方案

以下是针对不希望使用关联记录情况的推荐架构设计。

一对一关系或一对多关系

您可以通过将 ID 作为记录存储在表中来“关联”表。

示例

在“缺陷”表中,与其将缺陷与“工作单”表建立关联,不如在“缺陷”表中创建一个“工作单 ID”列,并在每行中以逗号分隔的列表形式存储一个或多个值

多对多关系

您可以在表字段中存储一个字符串数组,其中包含相关信息的链接

示例

与其将一组需要进行特征检查以确保质量的零件编号与检查关联,不如在每个零件记录中存储所需检查的ID数组

步骤1. 在应用程序逻辑中创建一个用于所需关联的数组

  1. 将数组转换为字符串,并将其存储在表字段中
  2. 若需在筛选器、应用程序逻辑中的后续处理或关联操作中使用该数据,请将字符串重新转换为数组。

关联表记录

要将两个表记录关联起来,必须添加一列新字段,以建立并定义这种关系。请务必注意,您无法关联 Tulip 表中的现有列。

表记录通过记录的ID 进行关联。

当您向表中添加关联记录列时,系统会提示您定义两个表之间的关系。创建后,关联表中也会自动生成一列,从而使每个关联表中各有一列。这些列将填充各自表记录的 ID。

要添加表记录链接,请在您希望链接的其中一个表中添加新列,并选择**“字段类型:关联记录**”。

此时将弹出一个模态窗口,其中包含以下选项:

  • 标签:定义当前操作表中的列标签
  • 链接到 > 表:选择您希望将记录链接到的表
  • 链接到 > 字段标签:定义将在关联表中填充的列标签
  • 链接类型:定义表格记录之间的关系类型。如果您不确定哪种关系类型最适合您的数据,请参阅这篇文章。
NOTE

Once you save the column, the link type can not be edited.

示例

在下面的示例中,有两个表:* 装配表* 零件表。

每个装配体由多个零件组成。

在“装配体表”中,我们将添加一列以建立两张表之间的关系。此处的关系类型为*“多对多”*。这是因为一个零件可以用于多个不同的装配体,反之亦然。

保存该列后,每个表中将生成以下列:

至此,仅定义了表之间的关系结构。现在,需要将每个表的记录指向其特定的关联记录。

要执行此操作,请点击一个表记录。将弹出以下模态窗口:

在搜索栏中,您可以选择要关联的表记录的 ID。如上所述,关联表记录之间的关系由表记录的 ID 定义。

下图展示了链接每个表记录后的表的显示效果:

进一步阅读