Neo4J 中的建模数据 - 拆分节点 - 翻译
Modeling data in Neo4J - splitting node - translation
image address nodes
是否建议将地址节点拆分为三个节点:
- 地址(街道 + nbr)
- 城市
- 国家
是否可以更轻松地编写查询来搜索发生在某些城市/国家/地区的事件?
我还想知道我是否希望在 Neo4J 中也存储地址转换,我是否应该像上图那样做。
如何为图表建模取决于您希望如何查询图表。如果您想按 country/city/address 进行搜索,建议在更多节点中拆分位置。现在,如果您不按地址对结果进行分组,则无需为地址创建单独的节点,您可以将其保存为 Person 节点上的 属性。这是我通常做的,因为我通常不会在同一地点与很多人打交道,所以不需要地址节点。至于保存翻译,还取决于您是否会在查询中使用它们。如果是这样,您可以将它们保存为 City/Country 上的 属性,以备不时之需。下图显示
how I typically approach this problem. Note that I also use a single relationship type throughout location tree. If you want to filter people by living on the same address then you can add the address node also.
image
我其实想统计某些 cities/countries 中最关注某些事件的人。所以我想最好将城市和国家放在一个单独的节点中。但我也想联系住在同一地址的人们。那么我想,最好将城市和国家保持在同一个地址节点中。我可以两者都做吗(就像上面的示例图片一样)?
image address nodes
是否建议将地址节点拆分为三个节点: - 地址(街道 + nbr) - 城市 - 国家
是否可以更轻松地编写查询来搜索发生在某些城市/国家/地区的事件? 我还想知道我是否希望在 Neo4J 中也存储地址转换,我是否应该像上图那样做。
如何为图表建模取决于您希望如何查询图表。如果您想按 country/city/address 进行搜索,建议在更多节点中拆分位置。现在,如果您不按地址对结果进行分组,则无需为地址创建单独的节点,您可以将其保存为 Person 节点上的 属性。这是我通常做的,因为我通常不会在同一地点与很多人打交道,所以不需要地址节点。至于保存翻译,还取决于您是否会在查询中使用它们。如果是这样,您可以将它们保存为 City/Country 上的 属性,以备不时之需。下图显示
image
我其实想统计某些 cities/countries 中最关注某些事件的人。所以我想最好将城市和国家放在一个单独的节点中。但我也想联系住在同一地址的人们。那么我想,最好将城市和国家保持在同一个地址节点中。我可以两者都做吗(就像上面的示例图片一样)?