实施社交活动流的最佳方式是什么?

我很想听听您的意见,认为这是实施社交活动流的最佳方法(Facebook是最著名的例子)。涉及的问题/挑战是:

  • 不同类型的活动(发布,评论..)

  • 不同类型的对象(帖子,评论,照片..)

  • 1-n位用户扮演不同的角色(“用户x在用户Z帖子上回复了用户y的评论”)

  • 相同活动项目的不同视图(“您评论..”与“您的朋友x评论”与“用户x评论..” =>“评论”活动的3种表示形式)

..等等,尤其是如果您将其高度复杂化时,例如Facebook,例如,将多个活动项合并为一个(“用户x,y和z在该照片上发表了评论”

关于模式,纸张等的任何想法或指针,关于实现这种系统,数据模型等的最灵活,有效和强大的方法。

尽管大多数问题与平台无关,但我最终还是有可能在Ruby on Rails上实现这样的系统


芜湖不芜
浏览 718回答 3
3回答

慕神8447489

我创建了这样的系统,并采用了以下方法:数据库表具有以下列:id,userId,类型,数据,时间。userId是生成活动的用户type是活动的类型(即写博客文章,添加照片,在用户的照片上发表评论)数据是带有活动元数据的序列化对象,您可以在其中放入所需的任何内容这限制了您可以在提要中对用户,时间和活动类型进行的搜索/查找,但是在Facebook型活动提要中,这并不是真正的限制。并且在表上具有正确的索引的情况下查找速度很快。通过这种设计,您将必须决定每种事件类型都需要哪些元数据。例如,一张新照片的供稿活动可能如下所示:{id:1, userId:1, type:PHOTO, time:2008-10-15 12:00:00, data:{photoId:2089, photoName:A trip to the beach}}您会看到,尽管最确定的是照片的名称存储在其他包含照片的表中,而且我可以从那里检索名称,但是我会在元数据字段中重复该名称,因为您不想这样做如果需要速度,可以在其他数据库表上进行任何联接。为了显示来自50个不同用户的200个不同事件,您需要速度。然后,我有一些类扩展了基本的FeedActivity类,以呈现不同类型的活动条目。事件分组也将内置在呈现代码中,以避免数据库的复杂性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby