1. 系统概述
1.1 项目背景
本系统旨在为企业或社区平台提供一套完整的站内信解决方案,支持用户之间的消息发送、接收、管理等功能,提升用户间的沟通效率。
1.2 设计目标
- 实现用户间消息发送和接收
- 支持一对一和一对多消息发送
- 提供消息状态跟踪(已读/未读)
- 实现消息分类和管理
- 保证系统的高可用性和可扩展性
2. 技术架构
2.1 整体架构
表现层 (Web Layer) -> Spring MVC + JSP/Thymeleaf
业务层 (Service Layer) -> Spring Service
持久层 (DAO Layer) -> Spring Data JPA + Hibernate
数据库 (Database) -> MySQL 8.0
缓存层 (Cache) -> Redis
消息队列 (MQ) -> RabbitMQ (可选)
2.2 技术选型
- 后端框架: Spring Boot 2.7.x
- ORM框架: Spring Data JPA
- 数据库: MySQL 8.0
- 缓存: Redis
- 前端: HTML5 + CSS3 + JavaScript + Bootstrap 5
- 构建工具: Maven
- 服务器: Tomcat 9+
3. 数据库设计
3.1 数据库ER图
用户(User) --(1:n)--> 站内信(Message)
用户(User) --(1:n)--> 收件箱(MessageInbox)
3.2 数据表结构
用户表 (sys_user)
CREATE TABLE `sys_user` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` varchar(50) NOT NULL COMMENT '用户名',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0:禁用,1:启用)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `uniq_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
站内信表 (sys_message)
CREATE TABLE `sys_message` (
`message_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`sender_id` bigint(20) NOT NULL COMMENT '发送者ID',
`title` varchar(200) NOT NULL COMMENT '消息标题',
`content` text NOT NULL COMMENT '消息内容',
`message_type` tinyint(1) DEFAULT '1' COMMENT '消息类型(1:普通消息,2:系统通知,3:公告)',
`priority` tinyint(1) DEFAULT '1' COMMENT '优先级(1:普通,2:重要,3:紧急)',
`send_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
`is_draft` tinyint(1) DEFAULT '0' COMMENT '是否为草稿(0:否,1:是)',
PRIMARY KEY (`message_id`),
KEY `idx_sender` (`sender_id`),
KEY `idx_send_time` (`send_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='站内信表';
收件箱表 (sys_message_inbox)
CREATE TABLE `sys_message_inbox` (
`inbox_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '收件箱ID',
`message_id` bigint(20) NOT NULL COMMENT '消息ID',
`receiver_id` bigint(20) NOT NULL COMMENT '接收者ID',
`is_read` tinyint(1) DEFAULT '0' COMMENT '是否已读(0:未读,1:已读)',
`read_time` datetime DEFAULT NULL COMMENT '阅读时间',
`is_deleted`

最低0.47元/天 解锁文章
298

被折叠的 条评论
为什么被折叠?



