您好,我是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
}
答案 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种产品,并且以这种速度购买了多个客户,则您的应用程序性能将不是最佳的,因为检索大量数据并对其进行变异然后更新您的参与者(客户)。 您可以改为在客户和发票之间建立关系,每个包含产品枚举的发票将被表示为概念,其中包含所有产品属性,在这种情况下,每个发票都有所有者,因此您可以查询特定客户的所有发票。