利用 Microsoft Dataverse 中的复杂关系

Microsoft Dataverse 是 Power Platform 中的企业数据平台,使组织能够创建企业应用程序。 这些应用程序可以涉及跟踪有关业务流程的信息,这些业务流程包括数据之间的复杂关系。 Dataverse 使用内置的一对多、多对一和多对多关系类型支持常见数据关系。 如果需要跟踪关系的相关数据,还可以实现更高级的多对多关系。 这种灵活性对像事件管理应用这样的程序是有益的,因为跟踪出席详细信息需要的不仅仅是简单的关联。

小窍门

本文提供了有关如何在 Microsoft Dataverse 中为复杂数据关系建模的示例方案和可视化表示形式。 该解决方案是一个通用的示例场景架构,可用于许多不同的场景和行业。

体系结构图

显示“事件”、“联系人”和“事件与会者”表如何连接以跟踪参加活动的人员以及有关每个与会者的相关数据的体系结构图。

Workflow

Power Apps 画布应用程序使用 Dataverse 来管理事件管理应用的数据。 应用程序允许用户跟踪由组织的销售团队举办的活动(或多个活动)的参与人员。

  • 联系人:联系人表跟踪销售团队邀请参加活动的人员。
  • 事件:事件表跟踪事件信息,例如每个事件的名称、日期和位置。
  • 活动与会者:活动与会者表跟踪参加每个活动的人员及其出席数据。 此表在“联系人”和“事件”之间具有多对多关系。 它与联系人表具有多对一关系,与事件表具有多对一关系。 此设置允许此多对多表包含有关活动与会者的数据,例如其 RSVP 状态、出席状态以及是否支付费用。

用例

事件管理应用程序的主要用途是跟踪事件出席情况和相关信息。 要求如下:

  • 应用程序需要记录谁参加了每个活动 以及 有关其出席情况的详细信息。
  • 一个人可以参加多个活动。

内置多对多关系

在构建应用程序时,该团队在评估数据建模选项时,考虑了内置的 Dataverse 多对多支持。 此方法允许联系人参加多个活动。 在后台,Dataverse 会创建一个内部交叉表,用于跟踪联系人与一个或多个事件行之间的连接。 此内部表不可修改,无法添加用于记录两个表之间关系数据的其他列。 虽然此方法满足应用的一部分要求,但它不符合跟踪联系人参加的每个事件的信息的需求,例如 RSVP 状态。

手动多对多关系

若要跟踪联系人参加的每个活动的其他信息,请考虑“手动多对多”关系模式。 此模式涉及创建一个自定义表来表示连接表,然后为定义关系的两个表分别建立多对一关系。 使用此方法,可以创建自定义表“事件参与者”来表示联系人和事件之间的交集。 “事件与会者”表包含与“联系人”和“事件”表之间的多对一关系,允许它存储其他字段,例如 RSVP 状态、出席状态和付款信息。

虽然此模式比内置多对多关系更具灵活性,但仅在需要存储有关关系的额外数据时才使用它。

何时使用每个方法

内置多对多方法: 如果只需要知道哪些联系人关联到哪些事件,那么不需要额外的信息是最好的选择。 自动管理表与行之间的交集。 提供一次性链接多个记录的更流畅的体验,尤其是在针对内置方法优化的模型驱动应用中。

手动多对多: 需要存储有关每个关系的额外数据时使用。 通过交叉表更轻松地添加自定义字段。 提供对安全性的完全控制,并允许你自动执行何时和谁可以建立关系。 需要执行更多步骤来为每行提供附加信息(在一次关联多行时尤为明显)。

在我们的场景中,手动模式可能是向用户呈现一个新的行窗体,必须至少确保提供关联的两个行。 在 Power Apps 画布应用程序中,开发者可以通过提供流畅的用户体验来简化关联过程,从而简化这种复杂性。 另请注意,在创建手动关系时,必须在多对一关系上配置级联选项,以确保如果删除了任一相关行,级联选项会自动删除跟踪关系的自定义表行。 如果未正确配置用于删除自定义相交表行的级联选项,有可能会留下孤立行。

在为数据模型选择最佳选项时,请记住,在两种方法之间转换没有内置支持。 选择方法后,无需迁移数据,就不能在它们之间切换。 仔细评估与多对多关系相关的任何需求,以确定是否需要采用自定义表方法。 还要考虑你是否不仅现在需要额外的数据,而且将来需要额外的数据。 尽管手动多对多模式具有复杂性,但它提供了更大的灵活性。

Components

Power Apps 用于实现解决方案的用户体验。 创建者生成应用程序以在 Dataverse 中管理数据。 创建者必须为其创建的任何多对多关系实现用户体验。

Dataverse:Dataverse 处理应用程序的数据需求。 Dataverse 提供多对一、一对多和多对多关系类型,用于为实际业务数据连接建模。

注意事项

这些注意事项实现了架构良好的 Power Platform 支柱,这是一组可提高工作负荷质量的指导原则。 在架构良好的 Microsoft Power Platform 中了解详细信息。

Reliability

设计工作负载,使其符合业务目标并避免不必要的复杂性或开销:对此类所有关系使用手动多对多模式可增加应用程序创建、维护和用户体验的不必要的复杂性。 请务必评估每个关系,以确保你选择的方法最适合你的要求。

安全性

保护机密性和完整性的设计:数据之间的关系可能敏感且直接影响业务运营。 默认情况下,Dataverse 安全模型提供对数据关系的精细安全控制,以及对用户可以针对数据行执行的操作的支持。 创建具有自定义交集表的手动多对多关系时,您可以获得其他管理功能,这些功能可用于管理谁能对该关系数据执行哪些操作。

卓越运营

自动化处理所有无法从人工干预的见解和适应性中获益的任务:当删除其中一个相关行时,对关系使用级联自动化来自动清理自定义交集表行。

体验优化

为简单性和效率进行设计:选择多对多关系类型会影响用户建立应用程序中数据行之间的关系的方式。 使用手动模式时,请为用户建立一致的方式来关联数据并在整个应用程序中以一致的方式优化常见交互方案。 对于 Power Apps 模型驱动应用程序,请考虑在使用手动模式时提供更自定义的用户体验。 例如,通过使用自定义 Power Apps 画布页面或 Power Apps 组件框架(PCF)控件,可以提供与 Power Apps 画布应用中类似的简化交互体验。