24 lines
1.5 KiB
SQL
24 lines
1.5 KiB
SQL
-- 心情打卡表
|
||
CREATE TABLE IF NOT EXISTS `t_mood_checkins` (
|
||
`id` varchar(36) NOT NULL COMMENT '主键ID',
|
||
`user_id` varchar(255) NOT NULL COMMENT '用户ID',
|
||
`mood_type` enum('happy','excited','thrilled','calm','anxious','sad','lonely','wronged','angry','tired') NOT NULL COMMENT '心情类型:开心、心动、兴奋、平静、焦虑、难过、孤独、委屈、生气、心累',
|
||
`intensity` int NOT NULL DEFAULT '5' COMMENT '心情强度(1-10)',
|
||
`description` text COMMENT '心情描述',
|
||
`checkin_date` date NOT NULL COMMENT '打卡日期(YYYY-MM-DD)',
|
||
`metadata` json DEFAULT NULL COMMENT '扩展数据(标签、触发事件等)',
|
||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_checkin_date` (`checkin_date`),
|
||
KEY `idx_mood_type` (`mood_type`),
|
||
KEY `idx_user_date` (`user_id`, `checkin_date`),
|
||
KEY `idx_deleted` (`deleted`),
|
||
CONSTRAINT `fk_mood_checkins_user_id` FOREIGN KEY (`user_id`) REFERENCES `t_users` (`id`) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='心情打卡表';
|
||
|
||
-- 添加索引以优化查询性能
|
||
CREATE INDEX `idx_user_mood_date` ON `t_mood_checkins` (`user_id`, `mood_type`, `checkin_date`);
|
||
CREATE INDEX `idx_intensity` ON `t_mood_checkins` (`intensity`); |