如何规范区块链存储?
How to normalize blockchain storage?
我想知道如何为我的资产、参与者、交易和事件建模。我已经查看了有关如何在语法方面明智地执行此操作的文档,但我想知道是否有结构化的方法来执行此操作。就像在关系数据库上进行规范化的方式一样。
如果有人对区块链数据存储有原则,我很想听听。
Hyperledger Fabric 基于 key-value 存储(LevelDB 和 CouchDB),因此您不会真正从规范化数据中获得任何好处。在关系数据库中,您这样做是为了方便索引和连接,但在 key-value-stores 中没有连接这样的东西。
您可以为数据创建索引以加快查询速度。 Marbles tutorial chaincode (l.108+):
let indexName = 'color~name'
let colorNameIndexKey = await stub.createCompositeKey(indexName, [marble.color, marble.name]);
要在 Hyperledger Composer 中对您的资产进行建模,您可以使用 .cto definitions。
我想知道如何为我的资产、参与者、交易和事件建模。我已经查看了有关如何在语法方面明智地执行此操作的文档,但我想知道是否有结构化的方法来执行此操作。就像在关系数据库上进行规范化的方式一样。
如果有人对区块链数据存储有原则,我很想听听。
Hyperledger Fabric 基于 key-value 存储(LevelDB 和 CouchDB),因此您不会真正从规范化数据中获得任何好处。在关系数据库中,您这样做是为了方便索引和连接,但在 key-value-stores 中没有连接这样的东西。
您可以为数据创建索引以加快查询速度。 Marbles tutorial chaincode (l.108+):
let indexName = 'color~name'
let colorNameIndexKey = await stub.createCompositeKey(indexName, [marble.color, marble.name]);
要在 Hyperledger Composer 中对您的资产进行建模,您可以使用 .cto definitions。