首页 > 解决方案 > corda中的一对多和多对多关系

问题描述

我有三张桌子,比如说 T1、T2 和 T3。T1 与 T2 具有一对多关系,而 T2 和 T3 彼此之间具有多对多关系。
一旦 T3 中的多行进入特定状态,T1 状态就会更新为“已完成”,因此 T2 中的相关行也会更新。一旦 T2 的所有行都进入完成状态(取决于 T3),T1 状态就会更新为“完成”。我正在尝试在表之间建立一对多和多对多的关系,但出现多个错误。
你能从corda的角度提出一个正确的设计模式吗?

标签: corda

解决方案


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

我可以建议的是,这取决于您的 T2 或 T3 是什么。

  1. 如果 T2/T3 对应于现实世界中的文档/资产,并且与 T1/彼此具有父/子关系,那么最好以状态的形式对它们进行建模并通过linearIdor链接它们linearPointer(Corda 4)。并让合约命令指示状态应如何从一个生命周期过渡到另一个生命周期。关联
  2. 如果 T2/T3 是对象,即listOfApprovers, listOfAttachments, listOfCompletedStatus,那么最好让它们成为List父状态本身内的对象。并OneToMany在模式中使用 JPA 进行注释。关联

推荐阅读