图数据建模 - 节点与关系Neo4j注释节点

时间:2015-02-05 05:54:52

标签: neo4j graph-databases

在Neo4j中建模数据的最有效/可扩展方式是什么。比如说你正在制作一个假想的电影评论网站。要求是:

  1. 用户可以与其他用户成为朋友。
  2. 用户可以加入群组
  3. 用户可以观看电影。
  4. 用户可以推荐他们的朋友/群组电影。
  5. 用户可以评论他们观看的电影

    MERGE(c:用户{姓名:"钱德勒"})
    MERGE(j:用户{姓名:" Joey"})
    MERGE(c) - [:FRIENDS {since:1994}] - (j)
    合并(c) - [:会员{自:1994}] - (g:组{名称:" CoffeeClub"})
    MERGE(j) - [:会员{自:1995}] - (g)

    比赛(c:用户{姓名:"钱德勒"})
    MERGE(c) - [:WATCHED] - (m:电影{名称:" PulpFiction"})
    合并(c) - [:观看] - (男:电影{姓名:" DumbnDumber"})

  6. 实施Req#4&的最有效/可扩展的方法是什么? #5?

    用例1: "钱德勒"想推荐" DumbnDumber"致乔伊"还有评论:"这部电影能不能再荒谬了#34;

    用例2:" "乔伊"想推荐" PulpFiction"致" CoffeeClub"并评论:"你是怎么做的?"

1 个答案:

答案 0 :(得分:1)

#p>#4

我可能会创建一个推荐节点,该节点链接到用户,电影以及组或朋友节点。

#p>#5

  • 您可以将评论作为属性放入:WATCHED关系
  • 您可以创建一个额外的:用户和电影之间的评论关系
  • 您可以在用户和电影之间创建一个额外的评论节点

这一切都取决于你以后如何使用这些评论,如果应该有评论线程等。