在超级边缘编写器中定义唯一关系

时间:2018-05-16 07:49:41

标签: hyperledger hyperledger-composer

我有这个简化的场景:

asset device identified by deviceID
{
    o String deviceID
    o Data reading
}

concept Data identified by readingID
{
    o String ReadingID
    o Double Lng
    o Double Lat
}

是否可以避免不同的设备具有相同的读数关联,如独特的关系?一个例子:

deviceID = 1111 - > readingID = aaaa

deviceID = 2222 - > readingID = aaaa

我试图避免这种情况。我试图使用以下关系:

asset device identified by deviceID
{
    o String deviceID
    --> Data reading
}

将数据作为资产,但我遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

首先你的模型是:

asset device identified by deviceID
{
    o String deviceID
    o Data reading
}

concept Data 
{
    o String readingID
    o Double Lng
    o Double Lat
}

其次,Composer中的关系不用于“强制”RDBMS的唯一性(因为它不使用RDBMS,它使用键/值存储)。

检查设备资产是否尝试使用已与资产相关联的readID(存储在资产注册表中的资产中的概念)的最简单方法是在注册表上运行查询并使用true或者在您的交易代码中为false。除非您已将已使用的ID存储在其他位置作为注册表,否则会增加更多维护等。