在 GAE 中建模好友关系

发布于 2024-10-03 09:27:32 字数 250 浏览 3 评论 0原文

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情话难免假 2024-10-10 09:27:32

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

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文