| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- -- 消息通知表
- CREATE TABLE `notification` (
- `id` bigint(20) NOT NULL COMMENT '主键ID',
- `receiver_id` bigint(20) NOT NULL COMMENT '接收者用户ID',
- `receiver_name` varchar(100) DEFAULT NULL COMMENT '接收者用户名',
- `message_type` varchar(20) NOT NULL COMMENT '消息类型:SYSTEM-系统通知,TASK-任务通知,REPORT-报告通知,MESSAGE-消息通知,REMINDER-提醒通知,WARNING-警告通知',
- `title` varchar(200) NOT NULL COMMENT '消息标题',
- `content` text COMMENT '消息内容',
- `priority` varchar(10) NOT NULL DEFAULT 'NORMAL' COMMENT '消息优先级:LOW-低,NORMAL-普通,HIGH-高,URGENT-紧急',
- `status` varchar(10) NOT NULL DEFAULT 'UNREAD' COMMENT '消息状态:UNREAD-未读,READ-已读,ARCHIVED-已归档',
- `pushed` tinyint(1) DEFAULT '0' COMMENT '是否已推送到前端:0-未推送,1-已推送',
- `business_id` varchar(50) DEFAULT NULL COMMENT '关联的业务ID(可选)',
- `business_type` varchar(50) DEFAULT NULL COMMENT '关联的业务类型(可选)',
- `sender_id` bigint(20) DEFAULT NULL COMMENT '发送者用户ID(系统通知可为空)',
- `sender_name` varchar(100) DEFAULT NULL COMMENT '发送者用户名(系统通知可为空)',
- `send_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
- `read_time` datetime DEFAULT NULL COMMENT '阅读时间',
- `expire_time` datetime DEFAULT NULL COMMENT '过期时间',
- `extra_params` text COMMENT '扩展参数(JSON格式)',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `deleted` tinyint(1) DEFAULT '0' COMMENT '删除标记:0-未删除,1-已删除',
- PRIMARY KEY (`id`),
- KEY `idx_receiver_id` (`receiver_id`),
- KEY `idx_message_type` (`message_type`),
- KEY `idx_status` (`status`),
- KEY `idx_send_time` (`send_time`),
- KEY `idx_receiver_status` (`receiver_id`, `status`),
- KEY `idx_expire_time` (`expire_time`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息通知表';
- -- 用户在线状态表(可选,用于记录用户WebSocket连接状态)
- CREATE TABLE `user_online_status` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `username` varchar(100) DEFAULT NULL COMMENT '用户名',
- `session_id` varchar(100) NOT NULL COMMENT 'WebSocket会话ID',
- `server_ip` varchar(50) DEFAULT NULL COMMENT '服务器IP',
- `client_ip` varchar(50) DEFAULT NULL COMMENT '客户端IP',
- `browser` varchar(100) DEFAULT NULL COMMENT '浏览器信息',
- `os` varchar(100) DEFAULT NULL COMMENT '操作系统信息',
- `status` varchar(20) DEFAULT 'ONLINE' COMMENT '状态:ONLINE-在线,OFFLINE-离线',
- `connect_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '连接时间',
- `last_heartbeat` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '最后心跳时间',
- `disconnect_time` datetime DEFAULT NULL COMMENT '断开时间',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_session_id` (`session_id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_status` (`status`),
- KEY `idx_last_heartbeat` (`last_heartbeat`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户在线状态表';
|