OrientDB设计考虑因素

时间:2015-05-05 16:05:30

标签: orientdb

我只是在使用orientDB进行家庭项目,到目前为止我印象非常深刻。一开始我和许多东方用户一起计划同时使用Mongo和Neo实例,但东方似乎是我案例的最佳解决方案。

麻烦是我对它没什么经验所以它使我的设计/模式考虑变得困难。这是我的简化模型:

用户顶点有5个属性

项目顶点通常有大约6个属性,包括一个大的'描述'字段

我有更多的顶点,并计划有很多边缘,但我想知道,性能明智:

  • Mongo一般说如果可能的话,将所有内容保存在一个文档中
  • Neo一般说,保持你的'顶点'光亮

这两者有些矛盾,最好的解决办法是什么?例如,我可以将描述存储在一个单独的顶点中,以便它不包含在每个Edge中,或者在这个中没有性能增益?

BTW我知道我早期的优化受到了影响;)。但只是想知道。

Kr,Joris

2 个答案:

答案 0 :(得分:1)

Orient DB具有面向对象设计的独特属性,您可以在其中创建一个类并在V(Vertex)和E(Edge)类中继承它们。您可以将其用于商店描述。

以下是有关可扩展性的一些统计信息: [https://groups.google.com/forum/#!topic/orient-database/crIFYreBTdo][1]

我认为您应该阅读有关Graph数据库中的设计模式/建模的更多信息,这里有一些我在项目中发现有用的链接:

https://www.amazon.com/Graph-Databases-Ian-Robinson/dp/1449356265 https://www.youtube.com/watch?v=78r0MgH0u0w

答案 1 :(得分:0)

不要将描述存储在单独的顶点中。没有必要。

边缘不需要任何属性,它肯定不包括它链接的顶点的属性。

对于性能,您可能需要考虑轻量级'边缘。轻量级边缘不能具有任何属性,并且不作为独立实体存在。它简单地实现为从两个顶点到彼此的指针。