Модель данных Hyperledger Fabric chaincode - PullRequest
0 голосов
/ 11 декабря 2018

Существуют ли руководящие указания по проектированию модели данных для цепного кода в Hyperledger Fabric?Любые советы по проектированию модели данных, если у нас сложные отношения?

Например, если я хочу спроектировать модель данных библиотеки.Каждая книга может иметь несколько авторов, и каждый автор может иметь несколько книг.Каждая книга может быть помечена для разных категорий.Как лучше написать цепной код для этого примера, чтобы его можно было легко запрашивать по тегам или по авторам?

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Я бы предложил два подхода.

FIRST:

Если это данные данных, которые вы хотите сделать запросом по ключевому слову:

key, err := stub.CreateCompositeKey(index, []string{key1, key2, key3})

// Skiped

stub.PutState(key, value)

Поместите ключ другого атрибута, по которому вы хотите запросить, в составной ключ, а затем используйте:

getStateByPartialCompositeKey(objectType, attributes)

Таким образом, вы можете получить Книги автора или Категории, запросив их ключ вбыстрым способом.

SECOND:

Если запрос по атрибуту не требуется, просто поместите имя или идентификатор атрибута в вашу модель перед сериализацией и включите состояние.

0 голосов
/ 24 декабря 2018

Используя Hyperledger composer , вы можете легко установить связь между активами или участниками.Используя extends, вы можете взять все свойства и поля, требуемые супертипом, и добавить любые дополнительные свойства или поля из его собственного определения.Для получения дополнительной информации вы можете перейти по ссылке по этой для Концепции языка моделей.

Например

Рассмотрим пример. Создайте библиотеку 1 Asset.Пример:

 asset Library identified by LibraryId {
      o String LibraryId
  }

Затем также создайте concept Book, а также создайте Participate Author, который расширяется концепцией Book.А также вы можете поместить свое поле дополнения в любое Участие / активы / концепции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...