首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在orientDb中,可以在orientDB的图形数据库中使用以下数据类型,还是只能在orientDb的文档数据库中使用?

在orientDb中,可以在orientDB的图形数据库中使用以下数据类型,还是只能在orientDb的文档数据库中使用?
EN

Stack Overflow用户
提问于 2015-11-03 05:45:48
回答 1查看 446关注 0票数 0
  1. 嵌入式
  2. 嵌入式列表
  3. 嵌入集
  4. 嵌入式地图
  5. 链接
  6. 链接列表
  7. 链接集
  8. 链接地图

这些数据类型可以用在graph图形数据库中吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-03 07:32:13

两者都可以使用。正如在OrientDB文档中指出的(下面引用的一些段落),图DB构建在文档DB之上。

当在Graph中创建边缘时,Graph将创建一个边缘文档,其中包含指向顶点文档的输入和输出链接,以及指向边缘的顶点文档上的输入和输出链接(这没有轻量级边缘)。

相比之下,当您在文档之间创建链接时,它只是一个从一个文档到另一个文档的“单向指针”,因此第二个文档不知道它已经被链接了。在不需要完整的图形样式指针的情况下,也可以用顶点/边缘文档手动创建链接。

在OrientDB中,我们创建了两个不同的API : Document和Graph。Graph工作在Document之上。Document包含文档、键/值和面向对象模型。 图API {狙击]

  • 关系被建模为双向边缘。如果轻量级边缘设置是活动的,则OrientDB在边缘没有属性的情况下使用轻量级边缘,因此它对速度和空间的影响与文档链接相同,但具有双向连接的额外好处。这意味着您可以使用“移动顶点”命令来重构您的图形而不破坏链接。有关如何管理边缘的更多信息,请查看轻量级边缘。

文档API

{狙击]

  • 关系只是单向的。如果您需要双向关系,则维护这两个链接是您的责任。
  • 文档是一个原子单位,而对于图,所有东西都是以输入和输出的方式连接起来的。因此,图操作必须在事务中完成。相反,当您使用链接在文档之间创建关系时,目标链接文档不涉及此操作。这会带来更好的多线程支持,特别是通过插入、删除和更新操作。

不过,嵌入式文档有一个不同的用例,可以处理常规文档和基于图形的文档。正如在不同的地方指出的,在医生里The Records are contained inside the owner. The contained records have no RecordIds and are reachable only by navigating the owner record

举个实际的例子,假设你有个人和电子邮件文档,然后你将一封电子邮件嵌入到一个人--然后当你select from Email时,电子邮件就不会出现了。如果您创建了一个人到电子邮件的链接,就会有一个独立的电子邮件记录,但您不知道*在查询电子邮件时,谁使用了每一封电子邮件。但是,如果您使用了edge (即使用图形数据库api,它将为您创建和维护链接),那么您将能够在查询电子邮件时找到使用电子邮件的人。

*你总是可以查询每个人,找出哪些记录链接到特定的电子邮件,但这样做忽略了首先使用图形数据库的意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33492185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档