架构训练营 - 模块八作业
作业: 设计消息队列存储消息数据的 MySQL 表格
作业要求
1. 包括表名 字段 索引
2. 用文字描述设计思路和理由, 例如: 为什么设计某个索引
3. 一页 PPT 即可
提示
1. 需要考虑每个消息队列一张表, 还是所有消息放一张表, 里面加一个 "队列名称" 的字段
一、表结构设计
设计两张表存储消息, 支持单用户订阅和多用户订阅。表一存储发送消息、表二存储确认消息。
表一:
message_send 消息发送表
message_id INTEGER 消息标识 主键
message_subject VARCHAR(64) 消息主题/队列名称
message_type INTEGER 消息类型 (1-单用户订阅 2-多用户订阅)
create_time TIMESTAMP 创建时间
message_body CLOB
索引字段 create_time 查询某个时间范围内的消息 用于排查指定时间的错误
分区字段 message_subject
表二:
message_confirm 消息确认表
message_id INTEGER 消息标识
message_subject VARCHAR(32) 消息主题/队列名称
message_type INTEGER 消息类型
message_subcriber INTEGER (1-单用户订阅仅需要一个订阅者 2-多用户订阅支持多个订阅者)
confirm_time TIMESTAMP 确认时间
索引字段 confirm_time 查询某个确认时间内的消息标识, 用于排查时间范围内的错误
分区字段 message_subject
评论