Database 图形数据库中的二阶关系

Database 图形数据库中的二阶关系,database,graph,neo4j,relationships,Database,Graph,Neo4j,Relationships,我正在创建一个应用程序,这是相当重的关系。该网站的一个功能是推荐功能,用户可以在这里为他人评分。对于这一点,图形数据库似乎是理想的,所以我计划与Ruby一起使用Neo4j 这一切似乎都相当直截了当,但我想包括一个功能,用户可以评价一个特定的关系。例如,用户可以在特定餐厅推荐热狗,等等。我真正考虑使用Graph DB实现这一点的唯一方法是在两个节点之间添加一个“连接节点”,连接所有三个节点,或者通过向关系添加属性列表(即向用户-餐厅关系添加热狗5)。很明显,评级可以添加到热狗餐厅关系中,但你无法跟

我正在创建一个应用程序,这是相当重的关系。该网站的一个功能是推荐功能,用户可以在这里为他人评分。对于这一点,图形数据库似乎是理想的,所以我计划与Ruby一起使用Neo4j

这一切似乎都相当直截了当,但我想包括一个功能,用户可以评价一个特定的关系。例如,用户可以在特定餐厅推荐热狗,等等。我真正考虑使用Graph DB实现这一点的唯一方法是在两个节点之间添加一个“连接节点”,连接所有三个节点,或者通过向关系添加属性列表(即向用户-餐厅关系添加热狗5)。很明显,评级可以添加到热狗餐厅关系中,但你无法跟踪给它评级的用户,以防止他们多次评级


如果您对这个问题有任何想法,我们将不胜感激。

您可能希望检索用户的所有评论,或所有餐厅中关于热狗的评论,或所有餐厅中所有类型食物的评论,因此我建议您这样做:

1. user-[:write]->comment
2. comment-[:about]->hotdog
3. comment-[:concern]->restaurant
4.restaurant-[serve]->hotdog 

不确定最后一个,由于2和3,它可能没有用,这在很大程度上取决于您将运行的查询

,因此您建议我在所有三个项目之间创建一个附加节点,并将评级和注释属性附加到该节点?这是有道理的,我在我的问题中考虑了这一点,但不确定是否有更有效的方法来处理关系属性?您甚至可以基于关系上的属性提高结果,例如,请参阅