写点什么

模块八作业

用户头像
Mr.He
关注
发布于: 1 小时前

1. 发布-订阅模型

本作业基于发布-订阅模型设计。在此模型中,存放消息的容器称为 Topic(即主题)。订阅者在接收消息之前需要先根据需求,订阅对应的主题。最终,每个订阅者都可以收到同一个主题的全量消息。


2. 表设计

2.1 发布消息表

2.1.1 表名:Message_Topic_Time

考虑到单表存储的限制,同时也尽量减少不同类型的干扰,故根据 Topic 来建表。后期随着数据量的增大,可根据 Time 部分做扩展。

2.1.2 字段名

message_id:类型 INT,主键自增,not null

message_content:类型 BLOB,消息内容,not null

message_publisher_id: 类型 VARCHAR(64),发布者 id,not null

message_time:类型 DATETIME,发布时间,not null

2.1.3 索引

根据 message_time 建立索引,因为订阅者接收消息时,需要根据此字段频繁查询和排序


2.2 订阅消息表

2.2.1 表名:Message_Topic_Sub_Time

记录不同的订阅者接收信息的最后时间,防止消息被重复接收。


2.2.2 字段名

message_sub_id:类型 INT,主键自增,not null

message_subscriber_id:类型 VARCHAR(64),订阅者 id,not null

message_sub_time:类型 DATETIME,订阅时间,not null


2.2.3 索引

根据 message_subscriber_id 和 message_sub_time 建立索引,需要根据订阅者 id 查询用户订阅的记录,并根据订阅时间排序。从而防止接收重复消息。

发布于: 1 小时前阅读数: 9
用户头像

Mr.He

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

发布
暂无评论
模块八作业