OrientDB:什么是类属性?

时间:2017-07-05 12:12:49

标签: orientdb

我是OrientDB的新手,我理解类可以拥有属性,在这种情况下,它们实际上充当关系数据库中的表。但是,我发现即使我为一个类定义属性,它仍然不能保证从这个类创建的文档具有其所有属性的值。

例如: 在这里,我定义了一个班级' Person'使用属性' name',我仍然会向此类插入一个新文档,尽管它没有此属性的值。 如果是这样,属性的目的是什么?如何确保不包含某个属性的值的文档不会插入到类中?

  

orientdb {db = GratefulDeadConcerts}>创造班级人员

     

成功创建了类。现在数据库中的总类数:17。

     

orientdb {db = GratefulDeadConcerts}> create property person.name string

     

使用id = 1成功创建属性。

     

orientdb {db = GratefulDeadConcerts}>插入人物内容   {"电话":" 1234"}

     

已插入记录'#66:0 {电话:1234} v1'在0.000000秒(s)。

     

orientdb {db = GratefulDeadConcerts}>从人选择

     

+ ---- + ----- + ------ + ----- +   |#| @RID | @CLASS |电话|   + ---- + ----- + ------ + ----- +   | 0 |#66:0 |人| 1234 |   + ---- + ----- + ------ + ----- +

1 个答案:

答案 0 :(得分:1)

在OrientDB中,您可以使用无模式,模式混合或模式完整。 您可以定义属性,并可以在每个属性上定义约束:

http://orientdb.com/docs/last/SQL-Create-Property.html

同时您可以在属性上定义索引:

http://orientdb.com/docs/last/Indexes.html

例如,如果您希望某个属性在整个类(主键)上具有唯一值,则只需定义一个唯一索引:

CREATE INDEX Person.name ON Person(name)UNIQUE

希望这个帮助