图数据建模 - 节点与关系 Neo4j 注释节点
Graph Data Modeling - Node vs Relationship Neo4j Comment Nodes
在 Neo4j 中建模数据最 effective/scalable 的方法是什么。例如,假设您正在制作一个假想的电影评论网站。要求是:
- 用户可以与其他用户成为好友。
- 用户可以加入群组
- 用户可以看电影。
- 用户可以推荐他们的 friends/groups 部电影。
用户可以评论他们看过的电影
MERGE (c:User{name:"Chandler"})
MERGE (j:User{name:"Joey"})
合并 (c)-[:FRIENDS {Since:1994}]-(j)
MERGE (c)-[:MEMBER {Since:1994}]-(g:Group{name:"CoffeeClub"})
合并 (j)-[:MEMBER {Since:1995}]-(g)
MATCH (c:User{name:"Chandler"})
合并 (c)-[:WATCHED]-(m:Movie {name:"PulpFiction"})
MERGE (c)-[:WATCHED]-(m:Movie {名称:"DumbnDumber"})
什么是最 effective/scaleable 实施要求 #4 和 #5 的方法?
用例 1:
"Chandler" 想向 "Joey" 推荐 "DumbnDumber" 并评论:"Could this movie beee any more ridiculous"
用例 2:"
"Joey" 想向 "CoffeeClub" 推荐 "PulpFiction" 并评论:"How you Doin'?"
#4
我可能会创建一个链接到用户、电影和群组或朋友节点的推荐节点。
#5
- 您可以将评论作为 属性 放在 :WATCHED 关系
中
- 您可以在用户和电影之间创建一个额外的 :COMMENTED 关系
- 您可以在用户和电影之间创建一个额外的评论节点
这完全取决于你以后想如何使用这些评论,是否应该有评论线程等。
在 Neo4j 中建模数据最 effective/scalable 的方法是什么。例如,假设您正在制作一个假想的电影评论网站。要求是:
- 用户可以与其他用户成为好友。
- 用户可以加入群组
- 用户可以看电影。
- 用户可以推荐他们的 friends/groups 部电影。
用户可以评论他们看过的电影
MERGE (c:User{name:"Chandler"})
MERGE (j:User{name:"Joey"})
合并 (c)-[:FRIENDS {Since:1994}]-(j)
MERGE (c)-[:MEMBER {Since:1994}]-(g:Group{name:"CoffeeClub"})
合并 (j)-[:MEMBER {Since:1995}]-(g)MATCH (c:User{name:"Chandler"})
合并 (c)-[:WATCHED]-(m:Movie {name:"PulpFiction"})
MERGE (c)-[:WATCHED]-(m:Movie {名称:"DumbnDumber"})
用例 1: "Chandler" 想向 "Joey" 推荐 "DumbnDumber" 并评论:"Could this movie beee any more ridiculous"
用例 2:" "Joey" 想向 "CoffeeClub" 推荐 "PulpFiction" 并评论:"How you Doin'?"
#4
我可能会创建一个链接到用户、电影和群组或朋友节点的推荐节点。
#5
- 您可以将评论作为 属性 放在 :WATCHED 关系 中
- 您可以在用户和电影之间创建一个额外的 :COMMENTED 关系
- 您可以在用户和电影之间创建一个额外的评论节点
这完全取决于你以后想如何使用这些评论,是否应该有评论线程等。