时间:2021-07-01 10:21:17 帮助过:7人阅读
在一个消息通知系统中,有评论通知、有回复通知等等:
- 每种通知在web前台显示格式是不一样的;
- 对于同一种通知如评论,根据其所评论的内容在web前台显示时又是不一样的,如评论了日记与评论了照片在消息通知的显示中是不一样的;
- 另外,一张照片的评论也可能会有好几种显示格式;
考虑到扩展性,我也不能把要显示的通知内容硬性的写到数据库或redis中,看到网上提到“模板”,如果单纯的根据通知类型调用其显示模板,我觉得也不行,但实在不知如何设计数据库才能实现我上面的需求,不知道大家是怎么设计这种类似的消息通知的?
在一个消息通知系统中,有评论通知、有回复通知等等:
- 每种通知在web前台显示格式是不一样的;
- 对于同一种通知如评论,根据其所评论的内容在web前台显示时又是不一样的,如评论了日记与评论了照片在消息通知的显示中是不一样的;
- 另外,一张照片的评论也可能会有好几种显示格式;
考虑到扩展性,我也不能把要显示的通知内容硬性的写到数据库或redis中,看到网上提到“模板”,如果单纯的根据通知类型调用其显示模板,我觉得也不行,但实在不知如何设计数据库才能实现我上面的需求,不知道大家是怎么设计这种类似的消息通知的?
提一个解决方案:
通知不携带具体的内容或者携带最少量的必要信息(如消息数
、发送方
等信息),当用户实际点击时在异步获取具体的消息内容。
以Android的推送为例。这个为我厂先产品的一个实现。传递通知类型,以及用户id,然后在解析完成后在推送到通知中心。类似上面所说的携带最少量必要信息,然后异步获取具体呈现内容。
再说具体的通知信息如何呈现。
首先,存储中保存的信息必然不是最终呈现给用户的信息。给用户呈现的信息应当是在service层或者在页面组装的。存储还是保存基本数据信息,比如说具体评论内容、时间、图片链接等。
昨天晚上比较晚,思路不是很清晰。现在再做下补充。
上面提到的方法是一。还有就是和view层(web、app)协定好具体的消息格式,然后还是在service
层完成消息组装。
以iOS推送为例:iOS的推送因为是要遵从Apple的APNs的协议,alter是alter,badge是badge,需要传递给app的,则封装在custom中。web也可以类似,协定好具体的通知格式,然后在web层判断并呈现。
我目前就是这样的,,现在要推送给用户的信息,
这个信息分为各种各样的,, 如果用redis来存储呢 ? 再者如何读取用户没有读取过的消息记录呢??