我正在使用GAE并拥有一个用户表。现在我想模拟用户之间的朋友关系。我想有3个属性user1
,user2
和request_status
,但问题在于查询找到特定用户的朋友。由于GAE不允许OR
过滤,我必须合并两个查询。显然这是非常低效的。这只是我的方法的一个问题。
如果有人可以建议一个让我跟踪所有朋友请求以及友谊的解决方案,那么这将非常有帮助。
答案 0 :(得分:1)
非规范化可让您通过单个查询更有效地查找用户的朋友。尝试在模型中存储另一个属性users
(db.ListProperty
),其中包含 user1
和user2
。然后你可以简单地执行这样的查询来找到用户的朋友:
friendships = Friendship.all().filter('users =', user).fetch(...)
优点是您只需要一个查询(更快)。缺点是你将有一点额外的空间开销来存储users
属性和(自动)索引。