-- 创建通知表 CREATE TABLE IF NOT EXISTS `notices` ( `id` int NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL COMMENT '通知标题', `content` text NOT NULL COMMENT '通知内容', `type` enum('system','user','broadcast') NOT NULL DEFAULT 'system' COMMENT '通知类型', `status` enum('pending','sent','read','failed') NOT NULL DEFAULT 'pending' COMMENT '通知状态', `userId` int DEFAULT NULL COMMENT '接收者用户ID,NULL表示广播', `senderId` int DEFAULT NULL COMMENT '发送者用户ID', `scheduledAt` datetime DEFAULT NULL COMMENT '计划发送时间', `sentAt` datetime DEFAULT NULL COMMENT '实际发送时间', `readAt` datetime DEFAULT NULL COMMENT '阅读时间', `metadata` json DEFAULT NULL COMMENT '额外数据', `createdAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间', `updatedAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_notices_user_id` (`userId`), KEY `idx_notices_status` (`status`), KEY `idx_notices_scheduled_at` (`scheduledAt`), KEY `idx_notices_created_at` (`createdAt`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知表';