使用 IN 运算符进行 BigTable 查询以获取所有用户组密钥

发布于 2024-10-12 22:49:51 字数 481 浏览 5 评论 0原文

我在未来的社交应用程序中的权限没有什么问题。

平台将是nonrel db(Google的BigTable)。

在我的应用程序中,每个用户都有组(例如:朋友、合作者、家人......)。在群组中有一些朋友(例如在 Facebook 中)。并且可以发布一些只针对这个群组的内容(新闻、短文……)。 如果我的组中有用户,那么它就是我的朋友。就像 Facebook 一样,但有更多的群组。

我的想法是,每个用户都可以在一个页面中看到(自己“反馈”)所有朋友的所有最新内容(例如 Facebook 的热门新闻)。 但我在创建简单查询时遇到问题。

例如:

SELECT * FROM News WHERE group_key IN [list_of_groups_where_i_am]

这很好,但有子查询,列表限制为 30 项。 另一种方法是对内容进行强缓存。

有人有什么想法吗?或者任何学习材料,例如...

I have little problem with permissions in my future social application.

Platform will nonrel db (Google's BigTable).

In my application each user has groups (for example: friends, collaborators, family...). In group has some friends (like in Facebook). And can publish some content (news, short text, ...) only for this group.
If I have user in my group it is my friend. Like in Facebook, but more groups.

My idea is, that each user can see (on himself "feed") all last content of all friends in one page (like as Facebook's Top news).
But I have problems with creating simple query.

For example:

SELECT * FROM News WHERE group_key IN [list_of_groups_where_i_am]

This works good, but there are sub-queries and limit of list is 30 items.
Other way is strong caching of content.

Does anybody have some idea? Or any study material, example...

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

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

发布评论

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

评论(1

夜未央樱花落 2024-10-19 22:49:51

有了这样的要求,您可以针对读取或写入进行优化,但通常不能同时针对两者进行优化。您拥有写入优化版本 - 只需使用正确的组键写入记录,但有一个复杂的查询来获取所有组的内容。

读取优化版本是将内容(或只是其 id)写入每个用户的提要中,这使得读取查询非常简单。

With a requirement like this you can optimize for either read or write, but usually not both. You have the write optimized version - just write a record with the right group key but have a complex query to get content for all the groups.

The read optimized version would be to write the content (or just its id) to a feed for each user, which makes the read query very simple.

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