我很想聽聽您的意見,認為這是實施社交活動流的最佳方法(Facebook是最著名的例子)。涉及的問題/挑戰是:不同類型的活動(發布,評論..)不同類型的對象(帖子,評論,照片..)1-n位用戶扮演不同的角色(“用戶x在用戶Z帖子上回復了用戶y的評論”)相同活動項目的不同視圖(“您評論..”與“您的朋友x評論”與“用戶x評論..” =>“評論”活動的3種表示形式)..等等,尤其是如果您將其高度復雜化時,例如Facebook,例如,將多個活動項合并為一個(“用戶x,y和z在該照片上發表了評論”關于模式,紙張等的任何想法或指針,關于實現這種系統,數據模型等的最靈活,有效和強大的方法。盡管大多數問題與平臺無關,但我最終還是有可能在Ruby on Rails上實現這樣的系統
3 回答

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
我創建了這樣的系統,并采用了以下方法:
數據庫表具有以下列: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類,以呈現不同類型的活動條目。事件分組也將內置在呈現代碼中,以避免數據庫的復雜性。
- 3 回答
- 0 關注
- 822 瀏覽
添加回答
舉報
0/150
提交
取消