在Neo4j中为节点设置多个标签是否有意义?

ppa*_*eja 6 neo4j nosql graph-databases

在Neo4j的google小组发表这篇文章之后,我不得不说在使用这种多标签的东西时我没有看到任何好处,相反,相反,恕我直言,它只是增加了唯一性约束的复杂性.它还可能诱使用户将继承引入数据模型,这会导致挫败感,因为根本不可能......

Mic*_*ger 9

标签没有仅仅代表一种类型的概念,它们是在不同背景下可行的角色.

因此,在一个角色中,节点的某些属性和关系可能很重要,而在另一个角色(标签)中则是另一个角色(可能与第一个相交).

我们远离继承,因为它打开了一堆新的蠕虫,我们赞成组合.因此,您宁愿将整个节点组合为其各部分的总和.您还可以通过将"super"-types作为标签附加到层次结构中的子元素来模仿继承.

节点标签还可以用于在较大的图中分离子图,例如用那些标记标记在human途径和phylo途径中活跃的蛋白质.因此,您可以快速选择您感兴趣的图形的一部分.

那些独立的子图也可以来自不同的域,如geo,social,catalogue,supplier被组合在一个单一的曲线图.

多个标签也可用于分隔图形中用于表示"域"标签中"图形内索引"的"技术"名称空间.

关于唯一性 - 同时强制执行节点上现有标签和属性的所有唯一性约束.如果在插入或更新时无法解析它们将失败.