相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
基于Laravel實現(xiàn)的用戶動態(tài)模塊開發(fā)
前言
相信大家都知道,幾乎所有的社區(qū)應(yīng)用都有用戶動態(tài)這個部分,用戶可以通過好友動態(tài)獲能取到更多感興趣的內(nèi)容,從而提高社區(qū)活躍度和用戶粘性。它的實現(xiàn)相對來講比普通的內(nèi)容發(fā)布要復(fù)雜一些,主要體現(xiàn)在內(nèi)容多樣性上。
為了解決這個問題,我們得把這些不同類型的內(nèi)容抽象,提取共性,使用相同的結(jié)構(gòu)來處理,開發(fā)起來就會簡單很多。
概念抽象
用戶動態(tài),顧名思義,動態(tài)的產(chǎn)生,就是一系列事件的歷史記錄,所以首先關(guān)注“事件”這個名詞,它有哪些屬性:
- 觸發(fā)者,基于社區(qū)所有的事件幾乎都是由用戶觸發(fā)的
- 事件主體,事件的主體信息,例如“xxx發(fā)布了文章” 中的 “文章”。
- 事件屬性,事件主體不同,所需要的附加信息也不同,比如事件類型。
- 發(fā)生時間,記錄事件產(chǎn)生的時間,當(dāng)然了在我們的數(shù)據(jù)庫通常記錄了所有數(shù)據(jù)產(chǎn)生的時間。
我們將用戶動態(tài)抽象成只有 4 個基礎(chǔ)屬性的結(jié)構(gòu),就比較容易實現(xiàn)了:
- description 事件描述 - causer_id 或者 user_id 事件觸發(fā)者 - subject_id 主體 ID - subject_type 主體類型 - properties 事件附加屬性 - created_at 事件產(chǎn)生時間