开发者

Modeling a Friend relationship in GAE

I am working with GAE and have a user table. Now I want to model friend relationships between users. I am thinking of having 3 properties user1, user2 and request_status, but the problem is in querying to find a particular user's friends. Since GAE does not allow OR filtering, I have to merge two queries. Clearly t开发者_高级运维hat is very inefficient. This is just one problem with my approach. If someone could suggest a solution that lets me keep track of all friend requests as well as the friendship, then that would be very helpful.


Denormalization will let you more efficiently find a user's friends with a single query. Try storing another property users (a db.ListProperty) in your model which contains both user1 and user2. Then you can simply execute a query like this to find a user's friends:

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

The advantage is that you only need a single query (faster). The disadvantage is that you will have a little extra space overhead to store the users property and the (automatic) index on it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜