在一個消息通知系統(tǒng)中,有評論通知、有回復(fù)通知等等:
- 每種通知在web前臺顯示格式是不一樣的;
- 對于同一種通知如評論,根據(jù)其所評論的內(nèi)容在web前臺顯示時又是不一樣的,如評論了日記與評論了照片在消息通知的顯示中是不一樣的;
- 另外,一張照片的評論也可能會有好幾種顯示格式;
考慮到擴(kuò)展性,我也不能把要顯示的通知內(nèi)容硬性的寫到數(shù)據(jù)庫或redis中,看到網(wǎng)上提到“模板”,如果單純的根據(jù)通知類型調(diào)用其顯示模板,我覺得也不行,但實在不知如何設(shè)計數(shù)據(jù)庫才能實現(xiàn)我上面的需求,不知道大家是怎么設(shè)計這種類似的消息通知的?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
提一個解決方案:
通知不攜帶具體的內(nèi)容或者攜帶最少量的必要信息(如消息數(shù)
、發(fā)送方
等信息),當(dāng)用戶實際點擊時在異步獲取具體的消息內(nèi)容。
以Android的推送為例。這個為我廠先產(chǎn)品的一個實現(xiàn)。傳遞通知類型,以及用戶id,然后在解析完成后在推送到通知中心。類似上面所說的攜帶最少量必要信息,然后異步獲取具體呈現(xiàn)內(nèi)容。
再說具體的通知信息如何呈現(xiàn)。
首先,存儲中保存的信息必然不是最終呈現(xiàn)給用戶的信息。給用戶呈現(xiàn)的信息應(yīng)當(dāng)是在service層或者在頁面組裝的。存儲還是保存基本數(shù)據(jù)信息,比如說具體評論內(nèi)容、時間、圖片鏈接等。
昨天晚上比較晚,思路不是很清晰?,F(xiàn)在再做下補(bǔ)充。
上面提到的方法是一。還有就是和view層(web、app)協(xié)定好具體的消息格式,然后還是在service
層完成消息組裝。
以iOS推送為例:iOS的推送因為是要遵從Apple的APNs的協(xié)議,alter是alter,badge是badge,需要傳遞給app的,則封裝在custom中。web也可以類似,協(xié)定好具體的通知格式,然后在web層判斷并呈現(xiàn)。
我目前就是這樣的,,現(xiàn)在要推送給用戶的信息,
這個信息分為各種各樣的,, 如果用redis來存儲呢 ? 再者如何讀取用戶沒有讀取過的消息記錄呢??