写点什么

架构实战营模块八消息队列 mysql 数据库设计

作者:刘洋
  • 2022 年 3 月 22 日
  • 本文字数:428 字

    阅读完需:约 1 分钟

【作业要求】

1. 包括表名、字段、索引;2. 用文字描述设计思路和理由,例如:为什么设计某个索引?3. 一页 PPT 即可。

【提示】

1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。

1、分析

每一个消息队列放一张表,增加队列的时候可以在程序中动态的创建消息队列表。表中必须包含主键,创建时间。创建时间可以作为范围查询。比如现在存在一个 user_message_queue 可以在管理后台中动态创建表结构

设计消息队列类型: 一对一发布订阅 、 发布和多个订阅

2、表结构

消息队列表:


订阅表:


消息队列和订阅者关系表:

索引: queue_id 字段增加索引。这个表订阅者不需要查询 。

注意:每次发布消息的时候,先查询消息队列对应的订阅者是谁,判断类型进行新增数据。

发布订阅表:

发布订阅表可以增加联合索引,顺序是 subscribe_id, create_time.。 为什么这么设计,因为订阅者在查询消息的时候肯定是需要根据自己本身订阅者 id 查询消息。有可能查询时间范围,所以这里使用联合查询,而不使用单独的索引。

用户头像

刘洋

关注

还未添加个人签名 2021.11.30 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块八消息队列mysql数据库设计_刘洋_InfoQ写作平台