这两种方法中的哪一种是在顶点/边缘存储数据的正确方法?

时间:2017-08-25 23:29:35

标签: neo4j cypher

在数据中我们需要能够:

  • 按日期查询评论
  • 查看评论文本(存储在顶点或边缘?)
  • 查询数据,例如用户为文章贡献了多少条评论(可以超过1条)

Data model

1 个答案:

答案 0 :(得分:1)

通常,顶点应表示实体,边应表示实体之间的关系。在您的使用案例中,两个图模型都可以满足要求。我个人更喜欢第一个。考虑到您将来可能需要在评论和其他实体之间建立更多关系,第一个图形数据模型更加合适。

所以你可以这样做:

  

按日期查询评论

MATCH (comment:Comment {date : '2017-05-01'})
RETURN comment
  

查看注释文本(存储在顶点或边缘?)

// Since the comment is an entity you should store the text in the node 
MATCH (comment:Comment)
RETURN comment.text
  

查询数据,例如用户为其贡献了多少条评论   文章(可以超过1)

MATCH (:User {id : 1})-[:MAKE]->(c:Comment)-[:ABOUT]->(:Article {id : 10})
RETURN count(c)