OutSystems中的实体关系

在Service Studio中,实体不仅包含业务实体的逻辑定义,还包含其与其他实体的关系。

通过定义单个引用属性(在数据库术语中也称为“外键”)来创建关系。其数据类型是<Entity> Identifier,对应于另一个实体的Identifier的类型。引用属性显示不同的图标(取决于关系的类型),这在实体图中可见。

关系类型包括:
一对一;
一对多;
多对对;

一对一关系

两个实体之间的一对一关系表示实体A中的一个记录对应于实体B中的一个记录,而实体B中的一个记录在实体A中只有一个相关记录。

在这种情况下,引用属性可以在实体A也可以在实体B中。要确定哪个实体包含引用属性,您必须考虑关系的可选性。当关系的双方都是强制性的或可选的时,您必须决定应该添加关系的实体,考虑哪个实体共享类型。

现在了解如何创建一对一的关系。

示例

假设在您的业务逻辑中,您拥有以下实体:

Contact
ContactPhoto

ContactPhoto始终属于 ContactContact可以关联一个ContactPhoto。这会帮助你定义 Contact实体。

要实现此关系,ContactPhoto的主键必须是 Contact主键的引用属性:

在这里插入图片描述

一对多关系

两个实体之间的一对多关系表示实体A中的一个记录对应于实体B中的多个记录,但实体B中的一个记录在实体A中只有一个相关记录。

在这种情况下,引用属性必须位于关系的“多的那边”,即实体B中。

现在我们来了解如何创建一对多关系。

示例

假设在业务逻辑中,您拥有以下实体:

Company
Contact

Company有一个或多个 ContactContact属于Company

要实现此关系,引用属性必须位于实体Contact中:

在这里插入图片描述

多对多关系

两个实体之间的多对多关系表示实体A中的一个记录对应于实体B中的多个记录,而实体B中的记录可以在实体A中具有多个关联记录。在这种情况下,您必须创建第三个具有至少两个实体A和实体B的参考属性的实体。实际上,多对多关系是与该第三实体的两个一对多关系。

现在我们来了解如何创建多对多关系。

示例

假设,在业务逻辑中您拥有以下实体:

Company
Contact

Contact可以从Company移出。反过来,Company可以拥有多个Contact

要实现此关系,必须创建第三个实体:CompanyContact,至少具有以下属性:

Id
CompanyId
ContactId

在这里插入图片描述

引用完整性

在实体A和实体B之间创建关系时,必须指定要在模块中应用的引用完整性机制,即如果删除实体A中的相应记录,则必须在实体B中发生什么。在OutSystems中,此行为由引用属性的“删除规则”属性定义。

关系索引

定义引用属性后,将自动创建索引以提高模块的性能。调用此索引:

AutoIndex_<reference attribute name>

并涵盖实现关系的引用属性。您不应该删除此索引。如果这样做,Service Studio会显示警告,通知您此操作可能对性能产生的影响。

猜你喜欢

转载自blog.csdn.net/weixin_44201067/article/details/85257416