【问题标题】:Dynamic feeds or manual feeds? (user activities)动态提要还是手动提要? (用户活动)
【发布时间】:2012-09-03 00:50:16
【问题描述】:

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

  1. 对于每个用户活动,我在一些 Feed 表中手动创建了一条 Feed 记录
  2. 当下推导出提要

一个具体的例子如下:
用户可以被其他用户(如 twitter)关注,并且他们可以创建东西。如果我创建一个东西,这个东西就会有 CreationDate 和其他东西。我可以只使用连接或通过更新 Feeds 表来为我的追随者提供信息,以防有人停止关注我。

显然 (1) 难以维护,但速度更快,(2) 更容易,但我不确定它是否能处理如此多的用户加入可见性等...

Facebook 是如何做到的?还是推特?

【问题讨论】:

    标签: design-patterns feed


    【解决方案1】:

    我是 Feedly 的作者之一,这是一个帮助您构建 feed 系统的 python 框架。

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

    您可以在github和后台文章here找到该项目

    【讨论】:

      【解决方案2】:

      如果您正在寻找可以为您处理此问题的服务,Collabinate (http://www.collabinate.com) 可能正是您所寻找的。它提供了一个 API 来为每个实体创建活动流,让用户关注实体,然后为用户检索实时提要。它可以根据您正在查看的大小进行缩放。全面披露:我是 Collabinate 的创造者。

      【讨论】:

        【解决方案3】:

        我会推荐以下结构:

        feed 表,其中包含 feed_id、feed_type_id、creator_id、created_date、display_date、status 等字段,其中 status 为活动、隐藏或停用,您可以将其与更新 display_date 字段结合使用无需创建额外记录即可处理取消关注和重新关注

        feed_type 表,包含 feed_type_id、feed_type_name 字段

        跟随表,字段为 follow_id、feed_id、user_id

        发布表格,包含字段 post_id、feed_id、文本

        ...对于每个 feed_type 以此类推

        虽然在数据库端设置需要更长的时间,但从长远来看,这将节省您的时间,因为每种提要类型都可以轻松继承所有常见字段,例如 creator_id、created_date、status 和 display_date,这将很好地对应于面向对象代码中的类,并且更容易查找。例如,如果您每个用户都有一堵墙,那么您只需通过 creator_id 从 feed 表中选择,对于关注者活动的活动 feed,只需选择用户关注者中 creator_id 的 feed。

        虽然您最终会得到更多表,但您需要管理的总字段数和要编写的代码更少。这一切都是建立在亚里士多德的按属种对事物进行分类的理论之上,即事物的共同点(属)和它们的具体差异(种)。

        【讨论】:

          猜你喜欢
          • 2013-01-29
          • 2015-12-01
          • 1970-01-01
          • 2015-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多