消息系统的设计
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=\'用户分组表\' |
服务层设计:
新建一条公告
- 请求地址
- 请求类型
POST
新建一条私信
- 请求地址
- 请求类型
POST
新建一条群组消息
- 请求地址
- 请求类型
POST
新建一条全员消息
- 请求地址
- 请求类型
POST
获取用户未读消息数
- 请求地址
- 请求类型
POST
获取用户消息列表
- 请求地址
- 请求类型
POST
实时获取用户消息
- 请求地址
- 请求类型
POST
发送短信
- 请求地址
- 请求类型
POST
发送邮件
- 请求地址
- 请求类型
POST
以上是关于消息系统的设计的主要内容,如果未能解决你的问题,请参考以下文章