消息系统的设计

Posted 面壁偷笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息系统的设计相关的知识,希望对你有一定的参考价值。

简介:

消息系统主要分为了两种

① 站内信

    公告,私信(运营到用户),群组通信,全员信息

② 站外信

    短信,邮件,微信提醒

 

例图:

数据库设计:

 

一、消息信息表

create table `news` (

    `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT \'自增id\',

    `content` text NOT NULL COMMENT \'消息内容\',

    `type` tinyint(1) NOT NULL COMMENT \'消息类型,1:公告,2:站内信,3:群组信,4:全员发送\',

    `sender` int(11) unsigned NOT NULL COMMENT \'发送者id\',

    `senderName` varchar(80) NOT NULL DEFAULT \'\' COMMENT \'发送者名称\',

    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT \'1,发送,2,撤销\',

    `createTime` int(11) unsigned NOT NULL,

    PRIMARY KEY (`id`),

    KEY index_c (`createTime`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\'消息信息表\';

 

 

用户消息表

create table `userNews` (

    `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT \'自增id\',

    `isRead` tinyint NOT NULL DEFAULT 0 COMMENT \'是否已经读取 0,未读:1,已读\',

    `user_id` int unsigned NOT NULL COMMENT \'消息所有者\',

    `notify_id` int unsigned NOT NULL COMMENT \'关联notify表的id\',

    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT \'1,发送,2,撤销\',

    `createTime` int(11) unsigned NOT NULL,

    PRIMARY KEY (`id`),

    KEY index_u_s_c (`user_id`, `status`, `createTime`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\'用户消息表\'

 

分组关联表

create table `userGroup` (

    `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT \'自增id\',

    `groupName` varchar(40) NOT NULL COMMENT \'分组名\',

    `groupId` int(11) unsigned NOT NULL DEFAULT 0,

    `user_id` int(11) unsigned NOT NULL COMMENT \'消息所有者\',

    `createTime` int(11) unsigned NOT NULL,

    PRIMARY KEY (`id`),

    KEY index_g (`groupId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\'用户分组表\'


服务层设计:

新建一条公告

  1. 请求地址

  2. 请求类型
    POST

新建一条私信

  1. 请求地址

  2. 请求类型
    POST

新建一条群组消息

  1. 请求地址

  2. 请求类型
    POST

新建一条全员消息

  1. 请求地址

  2. 请求类型
    POST

获取用户未读消息数

  1. 请求地址

  2. 请求类型
    POST

获取用户消息列表

  1. 请求地址

  2. 请求类型
    POST

实时获取用户消息

  1. 请求地址

  2. 请求类型
    POST

发送短信

  1. 请求地址

  2. 请求类型
    POST

发送邮件

  1. 请求地址

  2. 请求类型
    POST

以上是关于消息系统的设计的主要内容,如果未能解决你的问题,请参考以下文章

消息通知系统模型设计

消息系统设计与实现

系统可扩展设计方法之消息队列

架构设计:系统间通信(20)——MQ:消息协议(下)

架构设计:系统间通信(19)——MQ:消息协议(上)

如何设计一套通用消息交互系统