'o' 和 .cto 文件中使用的箭头符号有区别吗?

Different between 'o' and arrow symbol used in .cto file?

我对模型文件中使用的 'o' 和 '-->' 有点困惑,例如:

asset Field identified by assetId {
    o String assetId
    o Customer owner
    --> Customer custId
}

participant Customer identified by customerId {
    o String customerId
} 

"o Customer owner" 和“--> Customer custId”有什么区别?

o表示这是class的owned 属性。又名 "field"。这意味着当 class 的实例被删除时,它的所有属性也会被删除。

--> 表示这是与另一个可寻址资源的关系。又名指针或 primary/foreign 关键实体关系。

在您的示例中,您的资产 Field 有一个 属性 或类型 Customer 称为所有者。当 Field 的实例被删除时,它们存储在所有者 属性 中的 Customer 的实例也会被删除。

Field 资产还与存储在名为 custId 的 属性 中的 Customer 实例有关系。删除 Field 的实例将 而不是 删除关系所指向的 Customer 的实例。

作曲家关系本质上是类型指针。它们是被指向的资源的完全限定类型名称,以及被指向的实例的标识。

在 Composer 中,关系不会级联删除,也没有关系的引用完整性检查。由应用程序检查关系末尾的资源是否存在,并做出适当的响应。

请注意,将来我们可能会阻止对资产和参与者使用 o。它真的没有多大意义,并且让那些希望在各自的注册表中找到它们的人感到困惑。对于资产和参与者,人们应该使用 -->.