【问题标题】:Do having multiple labels for a node in Neo4j make any sense?在 Neo4j 中为一个节点设置多个标签有意义吗?
【发布时间】:2014-01-28 09:57:13
【问题描述】:

继 Neo4j 的谷歌小组的this post 之后,我不得不说我在使用这种多标签事物时没有看到任何好处,相反,恕我直言,它只是增加了唯一性约束的复杂性。它还可能诱使用户将继承引入数据模型,这会导致沮丧,因为这根本不可能......

【问题讨论】:

标签: nosql neo4j graph-databases


【解决方案1】:

标签不仅仅是代表一种类型的概念,它们是在不同上下文中可行的角色。

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

我们远离继承,因为它打开了一个新的蠕虫罐头,我们更喜欢组合。因此,您宁愿将节点整体组合为其部分的总和。您还可以通过将“超级”类型作为标签附加到层次结构中的子元素来模拟继承。

节点标签也可用于分隔较大图中的子图,例如用这些标签标记在human 通路和phylo 通路中活跃的蛋白质。因此,您可以快速选择您感兴趣的图表部分。

这些单独的子图也可以来自不同的域,例如geosocialcataloguesupplier,它们组合在一个图中。

而且,多个标签也很有意义,可以将用于表示“in-graph-indexes”与“domain”-labels 的图形的“技术”命名空间分开。

关于唯一性 - 节点上现有标签和属性的所有唯一性约束同时实施。如果在插入或更新时无法解决它们,则操作将失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2016-05-16
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多