如果开发中的网站未来会增长很多(比如数百万用户),我应该如何管理Feed(用户的活动)?
一个具体的例子如下:
用户可以跟随其他用户(如twitter),他们可以创建东西。如果我创建一个东西,这个东西将有CreationDate和其他东西。我可以只使用连接或者有一个必须更新的Feeds表来帮助我的追随者,以防有人停止跟踪我。
显然(1)难以保持但更快,(2)更容易,但我不确定它会处理这么多用户为了可见性等而加入...
Facebook如何做到这一点?或Twitter?
答案 0 :(得分:1)
我是Feedly的作者之一,它可以帮助您构建供稿系统。
Feedly可用于全推式或推拉式混合使用;在我们的文档中,我们提供了大量有关此内容的参考和解释。
上找到该项目答案 1 :(得分:0)
如果您正在寻找能够为您处理此问题的服务,Collabinate(http://www.collabinate.com)可能正是您所需要的。它提供了一个API,用于为每个实体创建活动流,让用户跟踪实体,然后检索用户的实时订阅源。它可以扩展到您正在查看的大小。完全披露:我是Collabinate的创建者。
答案 2 :(得分:0)
我会推荐以下结构:
供稿表,其中包含字段feed_id,feed_type_id,creator_id,created_date,display_date,status等...其中状态为活动,隐藏或停用,您可以将其与更新display_date字段结合使用用于处理取消关注和重新生成而无需创建其他记录
feed_type表,包含字段feed_type_id,feed_type_name
关注表格,其中包含字段follow_id,feed_id,user_id
发布表格,其中包含字段post_id,feed_id,text
每个feed_type...等等
虽然在数据库端设置需要更长的时间,但从长远来看,这将节省您的时间,因为每种提要类型都可以轻松地继承所有常用字段,例如creator_id,created_date,status和display_date。与面向对象的代码中的类很好地对应,并且更容易查找。例如,如果您的每个用户都有一个墙,那么您只需通过creator_id从Feed表中进行选择,对于关注者活动的活动供稿,只需选择Feed,其中creator_id位于用户的关注者中。
虽然您最终会得到更多的表,但您可以减少要管理的总字段数并减少要编写的代码。这一切都基于亚里士多德关于属和物种分类的理论,即通过事物的共同点(属)和它们的具体差异(物种)。