21 lines
1.2 KiB
SQL
21 lines
1.2 KiB
SQL
-- 创建通知表
|
||
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='通知表'; |