图数据库中的二阶关系

时间:2013-11-29 17:37:00

标签: database graph neo4j relationships

我正在创建一个非常关系密切的应用程序。该网站的一个功能是推荐功能,用户可以为其他人评分。为此,看起来Graph DB是理想的,所以我计划使用Neo4j和Ruby。

这一切看起来都相当直接,但是我希望包含一个用户可以对特定关系进行评级的功能。例如,用户可以在特定餐厅等推荐热狗。我真正想到使用Graph DB这样做的唯一方法是在两个节点之间添加“加入节点”,连接所有三个节点,或者通过向关系添加属性列表(即将hotdog_5添加到用户 - 餐馆关系)。显然,评级可能会被添加到热狗餐馆的关系中,但是你无法追踪评价它的用户,以防止他们评价不止一次。

对此问题的任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可能想要检索用户的所有评论,或关于所有餐厅的热狗评论,或所有关于餐馆所有类型食物的评论,所以我建议这样做:

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

不确定最后一个因为2和3而无用,它很大程度上取决于你要运行的查询