一个表中的数据通常与另一个表中的数据相关。 例如,你可能具有 “教师 ”表和 “课堂 ”表,而 “课堂 ”表可能与 “教师 ”表有查找关系,以显示哪个教师指示课堂。 可以使用查阅列来显示 “教师 ”表中的数据。 这通常被称为查找列。
定义关系
可以创建从一个表到另一个表(或表和自身之间)的多种关系。 每个表可以具有与多个表的关系,每个表可以有多个关系到另一个表。 一些常见的关系类型包括:
- 多对一 - 在这种关系中,表 A 中的每行可以与表 B 中的多个行匹配,但表 B 中的每行只能与表 A 中的一行匹配。例如,一个班级有一个教室。 这是最常见的关系类型,其在列列表中显示为查找列
- 一对多 - 在这种关系中,表 B 中的每个行可以匹配表 A 中的多行,但表 A 中的每个行只能匹配表 B 中的一行。例如,单个教师教授许多课程。
- 多对多 - 在这种关系中,表 A 中的每个行都可以匹配表 B 中的多行,反之亦然。 例如,学生可以参加许多课程,每个班级可以有多个学生。
此外,您还可以在操作每次在父表上执行时在多对一和一对多关系上设置高级的级联行为。
添加查找列(多对一关系)
若要向表添加查找关系,请在 “关系 ”区域下创建一个关系,并指定要创建关系的表。
在 powerapps.com,在左侧导航窗格中选择“表”。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。
选择现有表或 创建新表
选择 “关系 ”区域。
选择 “添加关系”,然后选择一种关系类型,例如 多对一关系。
在右窗格中,选择相关表为当前表,然后选择完成。
选择保存表。
添加一对多关系
若要添加一对多关系,请在 “关系 ”区域下创建一个关系,并指定要创建关系的表。
在 powerapps.com 上,选择左侧导航窗格中的“表”。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。
选择现有表或 创建新表
选择 “关系 ”区域。
选择 “添加关系”右侧的向下箭头,然后选择 “一对多”。
选择表。 请注意,查找 列将显示在 当前 表中,默认名称是表名称(在此示例中为“教师”),但您可以根据需要进行更改。 选择 “完成 ”,将关系添加到表。
注释
如果是一对多关系,查找列将在相关表中创建,而不是您当前选择的表。 如果需要在当前表上查找,请创建多对一关系。
选择保存表。
添加多对多关系
若要添加多对多关系,请在 “关系 ”区域下创建一个关系,并指定要创建关系的表。
在 powerapps.com 上,选择左侧导航窗格中的“表”。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。
选择现有表或 创建新表
选择 “关系 ”区域。
选择“添加关系”,然后选择“多对多”。 这将打开一个面板供您选择要与其创建关系的表。 从 “相关表 ”下拉列表中选择该表。
选择表后,将显示关系和关系表的名称。 默认会组合表名显示,但可根据需要修改。
选择 “完成 ”以将关系添加到表,然后选择“ 保存表”。
添加高级关系行为
在构建一对多或多对一关系时,您还可以设置高级行为。
这些选项也称为级联行为,因为它们在相关表的层次结构中级联。 例如,如果从系统中删除学生,则可能需要删除学生的相关测试和作业。 这种类型的行为称为家长关系。
另一方面,您可能不希望操作在层级结构中级联传播。 例如在教师与班级的关联关系中,可设置当父表(教师)被删除时,子表(班级)不应*被删除。 这称为引用关系。
通过创建自定义表或使用现有通用数据模型表对业务数据建模时,请考虑所需的行为以及对相关表的整个层次结构的影响,并在以下标准行为之一之间进行选择:
引用,删除链接: 在两个表之间的引用关系中,可以导航到任何相关行,但对一个表执行的作不会影响另一行。 例如,如果教师与课堂之间存在一对多关系,则删除教师不会影响相关课堂。
引用,限制删除: 在引用中,限制两个表之间的删除关系,可以导航到任何相关行。 对父行执行的作不会应用于子行,但在子行存在时无法删除父行。 此设置可避免子行成为孤立数据。 这会强制用户在删除父级之前删除所有子级。
并行:在两个表之间的父级关系中,对父表记录执行的任何操作也可以对与父表记录相关的所有子表记录执行。 例如,父记录的所有者继承了对子表记录的访问权限,删除父记录时,也会删除所有子记录。
自定义: 在两个表之间的自定义关系中,选择与一组可能的操作所关联的行为。
有关默认值和自定义行为的详细信息: 配置表关系行为。
在应用中使用查阅列
如果从包含查阅列的表中 自动创建应用 ,则它显示为 下拉列表控件, 该控件包含来自表 的主名称 列的数据。
为画布应用添加 1:N 和 N:N 关系
使用 Relate 函数通过 Microsoft Dataverse 中的一对多或多对多关系将两行链接起来。 详细信息: 在 Power Apps 中关联和取消关联函数