'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的o
wned 属性。又名 "field"。这意味着当 class 的实例被删除时,它的所有属性也会被删除。
-->
表示这是与另一个可寻址资源的关系。又名指针或 primary/foreign 关键实体关系。
在您的示例中,您的资产 Field
有一个 属性 或类型 Customer
称为所有者。当 Field
的实例被删除时,它们存储在所有者 属性 中的 Customer
的实例也会被删除。
Field
资产还与存储在名为 custId
的 属性 中的 Customer
实例有关系。删除 Field 的实例将 而不是 删除关系所指向的 Customer
的实例。
作曲家关系本质上是类型指针。它们是被指向的资源的完全限定类型名称,以及被指向的实例的标识。
在 Composer 中,关系不会级联删除,也没有关系的引用完整性检查。由应用程序检查关系末尾的资源是否存在,并做出适当的响应。
请注意,将来我们可能会阻止对资产和参与者使用 o
。它真的没有多大意义,并且让那些希望在各自的注册表中找到它们的人感到困惑。对于资产和参与者,人们应该使用 -->
.
我对模型文件中使用的 '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的o
wned 属性。又名 "field"。这意味着当 class 的实例被删除时,它的所有属性也会被删除。
-->
表示这是与另一个可寻址资源的关系。又名指针或 primary/foreign 关键实体关系。
在您的示例中,您的资产 Field
有一个 属性 或类型 Customer
称为所有者。当 Field
的实例被删除时,它们存储在所有者 属性 中的 Customer
的实例也会被删除。
Field
资产还与存储在名为 custId
的 属性 中的 Customer
实例有关系。删除 Field 的实例将 而不是 删除关系所指向的 Customer
的实例。
作曲家关系本质上是类型指针。它们是被指向的资源的完全限定类型名称,以及被指向的实例的标识。
在 Composer 中,关系不会级联删除,也没有关系的引用完整性检查。由应用程序检查关系末尾的资源是否存在,并做出适当的响应。
请注意,将来我们可能会阻止对资产和参与者使用 o
。它真的没有多大意义,并且让那些希望在各自的注册表中找到它们的人感到困惑。对于资产和参与者,人们应该使用 -->
.