Corda 科尔达的一对多和多对多关系

Corda 科尔达的一对多和多对多关系,corda,Corda,我有三张桌子,比如T1,T2和T3。 T1与T2之间存在一对多关系,T2与T3之间存在多对多关系。 一旦T3中的多行进入特定状态,T1状态将更新为“已完成”,因此T2中的依赖行将更新。 一旦T2的所有行进入完成状态(取决于T3),T1状态将更新为“完成”。 我试图在表之间建立一对多和多对多的关系,但出现了多个错误。 你能从corda的角度提出正确的设计模式吗?这里没有正确或错误的设计。我们尝试了不同的方法,不同的设计在某些情况下表现出色,但在另一些情况下却惨败,反之亦然 我的建议是,这取决于你的

我有三张桌子,比如T1,T2和T3。 T1与T2之间存在一对多关系,T2与T3之间存在多对多关系。
一旦T3中的多行进入特定状态,T1状态将更新为“已完成”,因此T2中的依赖行将更新。 一旦T2的所有行进入完成状态(取决于T3),T1状态将更新为“完成”。 我试图在表之间建立一对多和多对多的关系,但出现了多个错误。

你能从corda的角度提出正确的设计模式吗?

这里没有正确或错误的设计。我们尝试了不同的方法,不同的设计在某些情况下表现出色,但在另一些情况下却惨败,反之亦然

我的建议是,这取决于你的T2或T3是什么

  • 如果T2/T3对应于现实世界中的文档/资产,并且彼此之间具有父/子关系,那么最好以状态的形式对它们进行建模,并通过
    linearId
    linearPointer
    (Corda 4)将它们链接起来。让contract命令指示状态应该如何从一个生命周期过渡到另一个生命周期
  • 如果T2/T3是对象,即
    listOfApprovers
    listOfAttachments
    listofacompletedstatus
    ,则最好将其作为父状态本身内的
    列表
    对象。并在模式中使用JPA进行
    OneToMany
    注释
    第一个选项是适合我们的用例。您能帮助我们如何链接linearId吗?