gpt4 book ai didi

database-design - neo4j 中的二部图实现

转载 作者:行者123 更新时间:2023-12-04 06:52:29 26 4
gpt4 key购买 nike

我有一个用户和项目的二部图。我想在neo4j中实现这个。有什么办法可以区分节点吗?现在,唯一的区别在于属性(property)值(value):

node A properties:
type=user, age=18, name=user123
node B properties:
type=item, price=123, name=item1234

并在 cypher 中查询图形如下所示:
-get all users:
start n=node:node_auto_index('type:user') return n;
start n=node:node_auto_index('age:*') return n;

1:虽然,因为每个用户都有age属性,所以不需要指定确切的节点类型,是吗?无论如何我必须指定它吗?

2:第二,由于 type 属性是完全重复的,创建 1 个具有属性 user 的特定节点和一个具有属性 item 的特定节点,并且将所有用户节点和所有 item 节点与其足够的根节点相关联不是更容易吗?

3:在neo4j中有什么方法可以在创建节点时指定它的类型而不是创建节点的参数类型? (类似于每组节点都保存在数据库中的不同部分,因此查询或选取特定组只需要指向该区域,而不是遍历所有节点并检查类型参数)

最佳答案

好,
没有黄金法则。如果你有很多一种类型的节点,你可能想要使用 and 索引,否则,类型 node 也很好。取决于您的用例,因为真正大的 super 节点会减慢速度,并且最好将其视为索引。

如果你知道你有一个节点类型的唯一属性,那么你当然可以从该属性推断它,并跳过属性 type在你的情况下。

关于database-design - neo4j 中的二部图实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12056058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com