最佳实践:如何在图形数据库中指定顶点的域“类型”

时间:2017-01-01 14:49:30

标签: graph gremlin tinkerpop tinkerpop-blueprint

构建图形时,通常需要指定顶点的“类型”。从概念上讲,我看到这可以通过将顶点标签或属性应用于每个顶点(即Bob,Label:Man),或者通过将顶点链接到另一个'类型'顶点(即Bob -IS A - >人)。

要查找“Man”类型的所有顶点的列表,我可以编写适用于这两种方法的gremlin查询。但最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

最佳实践:保持数据模型简单,并确保它与底层图形数据库的高效索引兼容。 TinkerPop级别没有一种适合所有解决方案。

这实际上取决于您的数据模型以及底层数据库的索引功能,更不用说数据在磁盘上实际序列化的方式了。最终,这一切都归结为您期望查询图表的方式以及您希望的性能类型。

这就是说,人们通常使用顶点标签,有时与某种type属性一起使用。图形实现者应该能够提供有效的索引来回答这种查询。它还应该给出一个更简单的图模型,这是一个需要考虑的重要事项。

根据图表的大小,在使用顶点建模类型时可能会出现性能问题,因为man类型的顶点很快就会变成超级节点。