我想通过创建一个twitter克隆来学习数据库设计。我想知道创建好友时间轴功能的最有效方式是什么。我正在谷歌App Engine中使用Big Table来存储数据。 IIRC,这意味着非常快的读取速度(获取),但页面查询速度相当慢,这也意味着写入速度相当慢。目前我脑海中有两种方法,每种都有其挫折:如何实现twitter的'朋友'时间轴'功能
对于每个用户,都有一个列表结构,这是他们朋友的时间表。每当有人发布推文时,该结构都会针对其每个追随者进行更新。这种方法使用了很多写操作,但是对于每个检索列表的用户来说,它看起来都非常快。
或
对于每个用户,动态地得到他下面的人所有的鸣叫时间线,并完成所有的鸣叫的合并得到朋友的计算朋友时间表(因为对于每个个人推文按时间顺序排序)。如果这个人跟随很多人,这可能会很慢。
有没有其他方法我不知道?这两种方法似乎都会在用户数量增加时使系统窒息。