模块八 - 设计消息队列存储消息数据的 MySQL 表格
作业: 设计消息队列存储消息数据的 MySQL 表格
作业要求
1. 包括表名 字段 索引
2. 用文字描述设计思路和理由, 例如: 为什么设计某个索引
3. 一页 PPT 即可
提示
1. 需要考虑每个消息队列一张表, 还是所有消息放一张表, 里面加一个 "队列名称" 的字段
消息存在一张分区表, 按照队列名称分区
有两张表存储消息, 支持单用户订阅和多用户订阅, 一张表存储发送消息, 另一张表存储确认消息。
message_send 消息发送表
id varchar(64) 主键
message_subject varchar(64) 队列名称
message_type varchar(32) 消息类型 (queue-单用户订阅 topic-多用户订阅)
create_time varchar(32) 创建时间
message_body clob
索引 create_time 查询某个时间范围内的消息
分区 message_subject
message_confirm 消息确认表
id varchar(64) 主键
message_id varchar(64) 消息发送表 id
message_subject varchar(32) 队列名称
message_type varchar(32) 消息类型
message_subcriber varchar(64) 消息订阅者
confirm_time varchar(32) 确认时间
惟一索引 message_id + message_subscriber 每个订阅着 只能确认一次
索引 confirm_time 查询某个确认时间内的消息标识,
分区 message_subject
评论