Modeling a Friend relationship in GAE

北战南征 提交于 2019-12-08 07:52:41

问题


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 that 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.


回答1:


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.



来源:https://stackoverflow.com/questions/4202059/modeling-a-friend-relationship-in-gae

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!