1-я думаю, что в вашем экономическом случае нет смысла добавлять владельца к каждому продукту, потому что у вас уже есть массив активов (продуктов), который принадлежит каждому клиенту.
1.1 - чтобы сохранить несколько активов в массиве продуктов, это будет сделано в функции обработки транзакций в файле logic.js.
В приведенной ниже ссылке на документацию вы найдете очень полезную информацию о том, как ее реализовать:
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 - вопрос, собираетесь ли вы добавлять новые продукты в этот массив каждый раз, когда клиент будет покупать продукт?
так что представьте, что ваш клиент купил 10000 продуктов, и с таким количеством клиентов производительность вашего приложения будет не самой лучшей, потому что вы извлекаете большую часть данных и изменяете их, а затем обновляете своего участника (клиента).
вместо этого вы можете построить связь между клиентом и счетом, и каждый счет содержит перечисление Продукта, которое будет представлено как концепция, которая будет содержать все свойства продукта, и в этом случае каждый счет будет иметь владельца, поэтому вы можете запросить все счета для определенного клиента.