我是学术研究的OrientDB。我们应该看的一个很大的部分是酸性范式。
“OrienDB手册”说:
OrientDB是一个兼容酸的数据库管理系统。
它还说:
创建属性时,OrientDB检查属性和类型的数据。如果持久性数据包含指定类型的不兼容值,则属性创建失败。它不对持久数据应用其他约束。
那么,外国投资者不会检查是否指向存在的记录?如果是这样的话,如果C是无效的,为什么东方酸是兼容的呢?
示例:有带有属性Blog.author链接写入器的类Writer和Blog。在带有RID=#12:0的Writer中只有一条记录。
在关系数据库中,此插入应发生错误:
Insert into Blog CONTENT {"author" : "#12:1"}RID=#12:1中没有记录,但OrientDBh没有发生错误。即使在使用Java的事务中:
ODatabaseDocumentTx db = new ODatabaseDocumentTx(...);
ODocument newBlog = new ODocument("Blog");
newBlog.field("author", new ORecordId(12,1) );
try{
db.begin();
newBlog.validate();
newBlog.save();
db.commit();
}
catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
db.rollback();
}
db.close();
}那么,我是否有一个很大的误解,或者为什么OrientDB酸兼容,如果没有国外的检查,所以有可能不一致?
发布于 2016-01-19 16:37:23
这是document的一个限制,没有检查RID一致性,因为当您删除一个文档时,找到链接到它的所有其他文档将意味着对数据库进行全面扫描,这通常需要很长时间才能完成。要解决这一问题,在应用程序级别存在双向链接或管理链接一致性.
https://stackoverflow.com/questions/34867509
复制相似问题