3 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
我創(chuàng)建了這樣的系統(tǒng),并采用了以下方法:
數(shù)據(jù)庫表具有以下列:id,userId,類型,數(shù)據(jù),時(shí)間。
userId是生成活動的用戶
type是活動的類型(即寫博客文章,添加照片,在用戶的照片上發(fā)表評論)
數(shù)據(jù)是帶有活動元數(shù)據(jù)的序列化對象,您可以在其中放入所需的任何內(nèi)容
這限制了您可以在提要中對用戶,時(shí)間和活動類型進(jìn)行的搜索/查找,但是在Facebook型活動提要中,這并不是真正的限制。并且在表上具有正確的索引的情況下查找速度很快。
通過這種設(shè)計(jì),您將必須決定每種事件類型都需要哪些元數(shù)據(jù)。例如,一張新照片的供稿活動可能如下所示:
{id:1, userId:1, type:PHOTO, time:2008-10-15 12:00:00, data:{photoId:2089, photoName:A trip to the beach}}
您會看到,盡管最確定的是照片的名稱存儲在其他包含照片的表中,而且我可以從那里檢索名稱,但是我會在元數(shù)據(jù)字段中重復(fù)該名稱,因?yàn)槟幌脒@樣做如果需要速度,可以在其他數(shù)據(jù)庫表上進(jìn)行任何聯(lián)接。為了顯示來自50個(gè)不同用戶的200個(gè)不同事件,您需要速度。
然后,我有一些類擴(kuò)展了基本的FeedActivity類,以呈現(xiàn)不同類型的活動條目。事件分組也將內(nèi)置在呈現(xiàn)代碼中,以避免數(shù)據(jù)庫的復(fù)雜性。
- 3 回答
- 0 關(guān)注
- 820 瀏覽
添加回答
舉報(bào)