NORMA中对象角色模型的三实体约束

NORMA中对象角色模型的三实体约束,orm,object-role-modeling,Orm,Object Role Modeling,我正在尝试使用Visual Studio 2010的NORMA对下面的ORM图中描述的约束进行建模: 当且仅当商户使用支持该货币的处理器时,商户才使用该货币进行交易 根据link,我试图建模的是一个连接子集约束。下面是上面链接中的一个示例: 这意味着一个人只能在一个项目的发起部门工作 这似乎与我试图建立的模型相同 如果添加子集约束,单击一个角色,然后单击另一个角色,我尝试了几种组合,但最终总是出现以下错误: 模型“ORMModel1”中的约束“SubsetConstraint1”在列“1”

我正在尝试使用Visual Studio 2010的NORMA对下面的ORM图中描述的约束进行建模:

当且仅当商户使用支持该货币的处理器时,商户才使用该货币进行交易

根据link,我试图建模的是一个连接子集约束。下面是上面链接中的一个示例:

这意味着一个人只能在一个项目的发起部门工作

这似乎与我试图建立的模型相同

如果添加子集约束,单击一个角色,然后单击另一个角色,我尝试了几种组合,但最终总是出现以下错误:

  • 模型“ORMModel1”中的约束“SubsetConstraint1”在列“1”中具有类型不兼容的角色扮演者
  • 模型“ORMModel1”中的约束“SubsetConstraint1”在列“2”中具有类型不兼容的角色扮演者

我该如何对这个约束进行建模?

您正朝着正确的方向前进。您需要定义超集角色对和子集角色对。每对具有一个商户角色和一个货币角色,并且这些角色在对中的顺序必须匹配。您可以通过单击约束来检查匹配的my;然后,角色以蓝色突出显示,1,1,2,1,2,2显示角色序列

超集商户角色是“商户使用处理器”中的商户角色。 超集货币角色是“处理器支持货币”中的货币角色

子集商户和货币角色是“商户以货币进行交易”的两个角色

类似的示例是此处仓库示例中“DirectOrderMatch”上的子集约束:。请注意指向PurchaseOrderItem和SalesOrderItem的两个箭头。在CQL中,该约束表示为(以详细的形式;该站点显示简洁的形式):

因此,通过比较,您用CQL编写的示例如下:

some Merchant transacts in some Currency
    only if that Merchant uses some Processor that supports that Currency;

你正朝着正确的方向前进。您需要定义超集角色对和子集角色对。每对具有一个商户角色和一个货币角色,并且这些角色在对中的顺序必须匹配。您可以通过单击约束来检查匹配的my;然后,角色以蓝色突出显示,1,1,2,1,2,2显示角色序列

超集商户角色是“商户使用处理器”中的商户角色。 超集货币角色是“处理器支持货币”中的货币角色

子集商户和货币角色是“商户以货币进行交易”的两个角色

类似的示例是此处仓库示例中“DirectOrderMatch”上的子集约束:。请注意指向PurchaseOrderItem和SalesOrderItem的两个箭头。在CQL中,该约束表示为(以详细的形式;该站点显示简洁的形式):

因此,通过比较,您用CQL编写的示例如下:

some Merchant transacts in some Currency
    only if that Merchant uses some Processor that supports that Currency;

我认为这个问题是一样的:我认为这个问题是一样的: