请问一下如google+信息分享的数据库设计。

2011-09-02 14:08:27 +08:00
 kingrever
由于google+是向圈子分享信息的,所以它不可能如twitter那样去设计数据库,那么应该它有些类似于站内信的数据库设计。一个是信息表,另外一个是用户关系表,记录发送者和接受者用户id,但问题来了,假设一个用户向100人发送信息,每天十条,那么这个用户关系表岂不是要很大很大。所以请问各位有什么好的设计方式。
4654 次点击
所在节点    问与答
3 条回复
keakon
2011-09-02 16:06:04 +08:00
没有证据表明Google+是用关系数据库吧…

如果是用GAE的datastore的话,信息表里就保存了公开状态了(public,some circle,somebody)。用户只要进行3个查询,然后merge一下就能获取自己的timeline了。
kingrever
2011-09-02 16:53:20 +08:00
@keakon 何以3个查询就得到,能否具体些。
keakon
2011-09-02 17:14:33 +08:00
@kingrever 大概就这样吧:
Message.filter('direct_to =', current_user)
Message.filter('sender IN', current_user.follower).filter('status =', 'public')
Message.filter('circle IN', current_user.circles)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/17646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX