项目的数据库设计?

需求描述

有一个项目,面向学校德育评价,打算留一个发布通知的模块,现在拿不准如何设计数据库

个人方案

我个人有预想两种方案去解决

  • 在mysql中建一个系统通知表
  • 直接存redis中

第一种方案的优点是可以实现数据的持久化,但是对于一些时效性较强的通知【例如系统维护通知等】需要进行额外处理【因为基本上过了时效以后这条记录几乎不会再用到了】

第二种方案的优点是可以比较轻松的处理时效性问题,但是需要考虑数据的持久化【因为需要考虑到服务器重启问题】

想问一下哪种方案更合理一些,需要两种方案结合使用吗

阅读 1.9k
1 个回答

mysql+redis的方案

把通知和通知对象持久化到MySQL

再把每个用户的通知列表缓存一份到redis,后续有新通知是新增这个列表,客户端每个用户都是通过redis里的缓存拿通知列表和详情

MySQL里的持久化数据是为了方便恢复重建redis缓存

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进