使用 IN 运算符进行 BigTable 查询以获取所有用户组密钥
我在未来的社交应用程序中的权限没有什么问题。
平台将是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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有了这样的要求,您可以针对读取或写入进行优化,但通常不能同时针对两者进行优化。您拥有写入优化版本 - 只需使用正确的组键写入记录,但有一个复杂的查询来获取所有组的内容。
读取优化版本是将内容(或只是其 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.