lor*_*tol 38 modeling neo4j node-neo4j
关于在何处使用标签与节点属性与关系+节点的任何经验法则.
让我们举个例子,说我有一个商店,我想把我的产品放在neo4j中.他们的标识符是产品sku,我也希望对它们进行分类,就像这个是衣服,食品,电子产品,你就明白了.我将在我的图表上进行免费搜索,就像用户可以搜索任何内容一样,并且我将返回与该搜索字符串相关的所有内容.
使用会更好吗:
sku 001
,我会标记它的标签Food
.sku 001
,并在此节点上有属性调用category:"Food"
sku 001
,我将为其创建另一个节点Food
,并将创建一个" category
" 关系来关联它们.我已经读过,如果你要查找属性,最好将其作为关系+节点,因为遍历比查找节点属性要快得多.
TIA
Ben*_*ole 56
是否应该使用属性,标签或类别的节点取决于您将如何查询数据.
(我在这里假设你有一套相当小的,相当固定的类别.)
如果您不按类别查询,请使用属性,但只需要返回通过其他方式找到的节点的类别.(例如:项目的类别是什么sku 001
?)
如果需要按类别查询,请使用标签.(例如:所有食品价格低于10美元?)
如果需要遍历类别而不知道它是什么,请使用节点.(例如:与用户选择的同一类别中十个最受欢迎的项目是什么?)
由于其中包含的基准,此博客文章也可能有所帮助.
我以4种不同的方式模仿了"关系"......
- 使用特定的关系类型
(node)-[:HAS_ADDRESS]->(address)
- 使用通用关系类型,然后按端节点标签过滤
(node)-[:HAS]->(address:Address)
- 使用通用关系类型,然后按关系属性过滤
(node)-[:HAS {type:“address”}]->(address)
- 使用通用关系类型,然后按端节点属性过滤
(node)-[:HAS]->(address {type: “address”})
<...>
所以总结......特定的关系#ftw!
归档时间: |
|
查看次数: |
6481 次 |
最近记录: |