创建表之间的一对多关系

已完成

本单元介绍如何通过执行以下步骤在 Microsoft Dataverse 中实现一对多关系。

提示

从一方或另一方查看关系时,一对多或多对一关系完全相同。

一对多关系

  1. 登录 Power Apps Maker Portal

  2. 通过使用顶部菜单栏中的下拉列表,选择要在其中工作的环境。

  3. 从侧面导航面板中选择以查看可用表列表。

    Dataverse 中可用的所有表的屏幕截图。

  4. 选择可用于创建与另一个表的关系的任意表。

  5. 在随后出现的“表”视图屏幕上,查找架构窗格并选择关系以查看该表与其他表的关系。

    突出显示“关系”的“架构”窗格屏幕截图。

  6. 在随后出现的“关系”视图屏幕中,您可以看到您的表当前具有的所有关系, 包括“一对多”、“多对一”和“多对多”。 如果您要创建新的关系,请选择命令栏中的 + 新建关系

    显示可用于创建的三种不同类型的“新建关系”按钮的屏幕截图。

  7. 接下来,可以选择多对一一对多或者多对多关系选项。 在此示例中,我们将选择一对多关系。

  8. 您会看到屏幕右侧出现一个窗口,其中包含您选择的关系类型的名称(本例为一对多),以及用于选择相关表的下拉列表字段。

    提示

    选择任一选项后,将在主表上创建查找列。

    显示相关表的下拉选项的关系窗格的屏幕截图。

    您可以在相关(多)表字段中选择要创建此关系的表。

  9. 选择表后,Dataverse 会自动创建一个查找列,以及将此表与父表相关联所需的一切内容。

    已完成的关系的屏幕截图。

  10. 要保存新关系,请选择完成

  11. 保存新关系后,您会看到它出现在您的关系列表中。

现在,您可以在业务解决方案中使用本关系和查找。 查找列将可用于显示所有多(子)行。

一对多关系行为

有些表本身没有任何意义,其创建通常用于支持其他表和流程。 通常包含一个必填查找列,用于链接到所支持的主表。 例如,业务要求可以是 Project 行不应在没有相关客户的情况下存在。 在这种情况下,会在项目与 Account 表之间建立多对一关系,而客户查找列也会设置为业务必需。

除了定义行与其他行之间的关系以外,一对多表关系还提供元数据用于解决以下问题:

  • 删除一行时,是否也应该删除与该行相关的任何行?

  • 向新所有者分配一行时,是否也必须将所有相关行分配到新所有者?

  • 在现有行的上下文中创建新的相关行时,如何简化数据输入过程?

  • 查看某行的人员如何查看相关行?

可以使用一对多关系上的关系行为来定义针对父行的分配、共享和删除等操作如何影响表关系多侧的行。 关系行为有助于确保数据完整性,因此非常重要。

行为

发生特定操作时,可以应用以下几种行为:

行为 描述
级联全部 对所有相关表行执行该操作。
可用项的级联 对所有活动的相关表行执行该操作。
用户负责项的级联 对与主表行属于同一用户的所有相关表行执行该操作。
无级联 不执行任何操作。
删除链接 删除所有相关行的查找值。
限制 当存在相关表行时,不会删除主表行。

操作

由行为控制的操作包括:

描述 行为
删除 删除主表行后会发生什么? 级联全部、删除链接、限制
分配 主表行分配给其他人后会发生什么? 级联全部、级联活动项、级联用户拥有项、无级联
重定父级 父关系中相关表的查找值发生更改时会发生什么? 级联全部、级联活动项、级联用户拥有项、无级联
共享 共享主表行后会发生什么? 级联全部、级联活动项、级联用户拥有项、无级联
取消共享 取消共享主表行后会发生什么? 级联全部、级联活动项、级联用户拥有项、无级联
合并 合并主表行后会发生什么? 级联全部、无级联
汇总视图 与此关系关联的汇总视图需要哪种行为? 级联全部、级联活动项、级联用户拥有项、无级联

注意

这些行为仅在对父行执行操作时作用于相关行,而不适用于对相关行直接执行的操作,也就是说,行为的操作方向为一对多,而不是多对一。

行为类型

为简化关系行为的设置,Microsoft 将行为分为以下几个类型:

类型 描述
父级 对父表的行执行的任何操作也会针对相关的子表行执行。
引用,限制删除 可以导航到任何相关行。 对父行执行的操作不会应用到子行,但是只要存在子行,就无法删除父行。
引用,删除链接 可以导航到任何相关行,对其中一个行执行的操作不会影响其他行。 这是默认情况。
自定义 可以为每个可能的操作选择该行为。

编辑主列的屏幕截图。

一对多关系映射

您可以在具有一对多关系的表之间映射列。 这可以让您为在另一行上下文中创建的行设置默认值。 用户在模型驱动应用中从父行窗体创建新的相关行时,映射可用于精简数据输入流程。

例如,打开客户行并创建新的相关联系人时,此功能会使用客户中的选定信息(例如办公室地址、主要电话号码等)预填充联系人窗体。

映射考虑事项:

  • 是否为模型驱动应用功能?

  • 仅适用于一对多关系。

  • 仅适用于从父行窗体的上下文中创建新相关行的情况。

  • 如果相关行通过选择查找列创建和链接,则不适用。

  • 父行列中的值将复制到子行。

  • 只能映射同一数据类型的列

  • 用户可以先覆盖这些值,再创建行。

  • 复制值仅在创建时完成一次,以后不会发生同步。

注意

使用经典解决方案资源管理器配置关系的映射。

分层关系

Dataverse 中的部分标准表已经定义了层次结构,例如客户。 层次结构中的行可以直观显示在模型驱动应用中。

分层关系的屏幕截图。

用于定义分层关系的选项仅适用于自引用关系。 自引用关系是表与其自身之间的一对多关系,其中同一个表同时被定义为主表和相关表。

创建分层关系的屏幕截图。

有关表关系的更多信息,请参阅表关系