JavaWeb站内信系统 - 技术设计文档

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`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值