架构实战营模块八作业
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
表设计:
队列表:
复制代码
消息表:
对队列 ID 建立索引,方便根据队列来查询该队列所有消息
复制代码
本文字数:478 字
阅读完需:约 2 分钟
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
队列表:
CREATE TABLE QUEUE (
ID BIGINT NOT NULL, -- 队列ID
NAME VARCHAR(20) NOT NULL, -- 队列名称
DESCRIPTION VARCHAR(200), -- 队列描述
MAX_BYTE INTEGER, -- 该队列消息体最大大小 单位字节
CREATE_TIME TIMESTAMP NOT NULL, -- 创建时间
IS_DEAD_QUEUE BOOLEAN, -- 是否为死信队列
PRIMARY KEY(ID));
消息表:
对队列 ID 建立索引,方便根据队列来查询该队列所有消息
CREATE TABLE MESSAGE (
ID BIGINT NOT NULL, -- 消息ID
QUEUE_ID BIGINT NOT NULL, -- 队列ID
CREATE_TIME TIMESTAMP NOT NULL, -- 消息创建时间
MESSAGE_DATA VARCHAR(1000) NOT NULL, -- 消息体
STATE NOT NULL, -- 消息状态
PRIMARY KEY (ID),
FOREIGN KEY (QUEUE_ID) REFERENCES QUEUE(ID)
);
CREATE INDEX QueueIndex ON MESSAGE (QUEUE_ID);
还未添加个人签名 2018.10.20 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论