动态Feed还是手动Feed? (用户活动)

时间:2012-09-03 00:50:16

标签: design-patterns feed


如果开发中的网站未来会增长很多(比如数百万用户),我应该如何管理Feed(用户的活动)?

  1. 对于每个用户活动,我在某些Feeds表中手动创建Feed记录
  2. 暂时减少供稿
  3. 一个具体的例子如下:
    用户可以跟随其他用户(如twitter),他们可以创建东西。如果我创建一个东西,这个东西将有CreationDate和其他东西。我可以只使用连接或者有一个必须更新的Feeds表来帮助我的追随者,以防有人停止跟踪我。

    显然(1)难以保持但更快,(2)更容易,但我不确定它会处理这么多用户为了可见性等而加入...

    Facebook如何做到这一点?或Twitter?

3 个答案:

答案 0 :(得分:1)

我是Feedly的作者之一,它可以帮助您构建供稿系统。

Feedly可用于全推式或推拉式混合使用;在我们的文档中,我们提供了大量有关此内容的参考和解释。

您可以在github和背景文章here

上找到该项目

答案 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位于用户的关注者中。

虽然您最终会得到更多的表,但您可以减少要管理的总字段数并减少要编写的代码。这一切都基于亚里士多德关于属和物种分类的理论,即通过事物的共同点(属)和它们的具体差异(物种)。