Neo4J用户配置文件数据建模

问题描述 投票:0回答:1

我需要设计一个数据模型,用于存储用户个人资料信息。用户节点可以包含名称,地址,电话作为属性。预计用户数量将急剧增加。同时,我想存储每个用户在个人资料创建过程中输入的技能和爱好。一个用户可以输入多种技能和爱好。当然,多个用户可以共享某种爱好或技能。

我们还具有按技能或爱好过滤用户的要求。也就是说,如果给出了爱好(羽毛球),我们需要找到所有喜欢羽毛球的用户。

  1. 将爱好和技能作为节点进行创造是否有意义?我的理解是,这将提高查询性能,但是,用户偶然输入的兴趣爱好和技能数量可能会增加数据库中的节点数量。
  2. 将技能和爱好存储为用户节点的属性会很好吗?我的理解是,在整个用户群中按属性搜索会降低查询性能。

请告知。谢谢。

neo4j modeling
1个回答
0
投票

技能和爱好在用户之间共享

    查找所有喜欢羽毛球的用户
  • 这清楚地表明技能/爱好是实体或节点。无需过早优化,结点的数量会增加,但会保持一定水平(技能和爱好的数量不是无限的)。同样,查询的性能与图形的总大小无关,因此图形的大小增长可能并不重要-性能将取决于所触摸的子图的大小。除非您查看的节点数是10或1000亿,否则将技能和爱好添加为节点是非常安全的,并且在此阶段不必担心性能。
  • © www.soinside.com 2019 - 2024. All rights reserved.