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