有一个从零写起来的 PHP 站点,是小众内容创作、互动方向的,打算在上面实现消息模块,类似知乎的吧,别人收藏、点赞、评论、回复、短消息了,有个数量提醒,以及详情聚合的页面。
简单想了想,感觉是一个挺全局的东西,要想好才能动手。目前的思路是这样:
- 建两个表,叫 notice 和 detail 吧
- 各类 trigger 发生后,根据动作类型实时地在 detail 表插入一条记录,就是某某针对你的什么有了什么反馈,然后结合 detail 表的历史记录合并一条概要存放到 notice 表
- 用户刷新页面时查 notice,如果记录的 count>0,取出数量和概要在页面呈现
- 如果用户点击红点、链接查看详情了,取出 detail 的内容在消息聚合页面上,同时两个表的计数清零
这个东西我没写过,请有经验的同学看看这个思路对路吗?是否有好用的第三方模块,还是必须从零开始?通常是用数据库还是 nosql 实现,然后复杂度、效率层面有什么需要注意的?
致谢!