1,如何在Hyperledger作曲家中为参与者存储多个资产

时间:2018-09-05 11:46:00

标签: hyperledger hyperledger-composer

您好,我是Blockchain的新手..请对此提供帮助。

1。我的客户参与者应该能够存储多个资产。 2.如何查询客户的所有产品

namespace demo  
participant Customer identified by customerId {

o String customerId

o String firstName

o String lastName

  o String email

  o String phone

  o Address address optional

  --> Product[] product optional // here i need to store multiple products that belongs to this customer
}



asset Product identified by productId{

   o String productId

  o productType producttype

  o String productName

  o String model

  --> Customer owner optional

}

1 个答案:

答案 0 :(得分:1)

1-我认为在您的业务案例中,没有必要向每个产品添加所有者,因为您已经拥有属于每个客户的资产(产品)数组。

1.1-要在您的产品阵列中保存多个资产,这将在逻辑处理文件中的事务处理功能中完成 在下面的文档链接中,您将找到有关如何实施的非常有用的信息: https://hyperledger.github.io/composer/latest/reference/js_scripts

1.2-作为一种查询解决方案,您将通过customerId查询此参与者注册表,并在结果中找到您的产品系列。如下。

in the queries.qry file

query CurrentCustomer {
  description: "Returns Certain Customer Details in This Registry"
   statement:  
    SELECT  demo.Customer
        WHERE (customerId == _$customerId)
 }

为更好地了解查询,您可以查看以下文档链接: https://hyperledger.github.io/composer/latest/tutorials/queries

2-这里的问题是,每当客户购买产品时,您将向该阵列添加新产品吗? 因此,假设您的客户购买了10,000种产品,并且以这种速度购买了多个客户,则您的应用程序性能将不是最佳的,因为检索大量数据并对其进行变异然后更新您的参与者(客户)。 您可以改为在客户和发票之间建立关系,每个包含产品枚举的发票将被表示为概念,其中包含所有产品属性,在这种情况下,每个发票都有所有者,因此您可以查询特定客户的所有发票。