Graph 图形数据库设计:我应该添加关系还是仅仅遍历

Graph 图形数据库设计:我应该添加关系还是仅仅遍历,graph,database-design,neo4j,graph-databases,Graph,Database Design,Neo4j,Graph Databases,我最近开始探索图形数据库和Neo4J,并希望使用我自己的数据。目前我有些困惑。我创建了一个示例图像来说明我的问题。就效率而言,我想知道哪种选择更好(我想在开始处理更大金额之前的几天内立即获得它) 选项A:仅使用蓝色关系,我就可以确定事物是否与古代群体相关,或者是否属于古代群体。这一过程将进行多次,但不可能超过6代 选项B:我实现了红色关系,这样就可以更快地确定年轻的建筑是否属于古代建筑群 在这个场景中,我尽量不使用标签,因为我试图使用标签来简化我的生活(在不同的网络中链接结构),我不确定是否应

我最近开始探索图形数据库和Neo4J,并希望使用我自己的数据。目前我有些困惑。我创建了一个示例图像来说明我的问题。就效率而言,我想知道哪种选择更好(我想在开始处理更大金额之前的几天内立即获得它)

选项A:仅使用蓝色关系,我就可以确定事物是否与古代群体相关,或者是否属于古代群体。这一过程将进行多次,但不可能超过6代

选项B:我实现了红色关系,这样就可以更快地确定年轻的建筑是否属于古代建筑群

在这个场景中,我尽量不使用标签,因为我试图使用标签来简化我的生活(在不同的网络中链接结构),我不确定是否应该有一个标签来表示已经存在的节点


总之,我想知道在占用更多空间的同时添加一组全新的关系是否值得,或者遍历查找所有亲属是否是一项简单/廉价的任务,不值得这么做。或者,两种选择都是可行的,这根本不是一个真正的问题。感谢阅读。

我选择选项A。Neo4j的优点之一是它能够非常高效、快速地遍历关系,因此,不需要将关系具体化(有时,关系在复杂和/或超大的图形中具体化,但这不是您的情况)


不确定为什么不想使用标签?标签用于将节点分组到同一类型的集合中,并且还支持索引-这使得查找查询起点的速度更快(在整个数据库扫描中进行索引查找)

谢谢你的回答!我将使用选项A。对于标签,我将它们保留为特定用途,这将根据多种主题对事物进行分组。在我给出的示例中,分组节点将用于显示它们是同一个族。我认为如果我将主题作为标签,将族作为关系/节点,生活会更简单。