我是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 | + ---- + ----- + ------ + ----- +
答案 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
希望这个帮助