在GAE中建立朋友关系模型

时间:2010-11-17 06:33:17

标签: google-app-engine google-cloud-datastore social-networking

我正在使用GAE并拥有一个用户表。现在我想模拟用户之间的朋友关系。我想有3个属性user1user2request_status,但问题在于查询找到特定用户的朋友。由于GAE不允许OR过滤,我必须合并两个查询。显然这是非常低效的。这只是我的方法的一个问题。 如果有人可以建议一个让我跟踪所有朋友请求以及友谊的解决方案,那么这将非常有帮助。

1 个答案:

答案 0 :(得分:1)

非规范化可让您通过单个查询更有效地查找用户的朋友。尝试在模型中存储另一个属性usersdb.ListProperty),其中包含 user1user2。然后你可以简单地执行这样的查询来找到用户的朋友:

friendships = Friendship.all().filter('users =', user).fetch(...)

优点是您只需要一个查询(更快)。缺点是你将有一点额外的空间开销来存储users属性和(自动)索引。