106 lines
5.6 KiB
MySQL
106 lines
5.6 KiB
MySQL
|
|
-- 优化历史功能数据库升级方案
|
||
|
|
-- 腾讯云MySQL数据库表结构设计
|
||
|
|
|
||
|
|
-- 1. 优化历史表
|
||
|
|
CREATE TABLE `optimization_history` (
|
||
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
|
|
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
|
|
`original_text` TEXT NOT NULL COMMENT '原始输入文本',
|
||
|
|
`optimized_text` TEXT NOT NULL COMMENT '优化后文本',
|
||
|
|
`optimization_type` VARCHAR(50) DEFAULT '提示词优化' COMMENT '优化类型',
|
||
|
|
`industry` VARCHAR(100) DEFAULT NULL COMMENT '行业分类',
|
||
|
|
`profession` VARCHAR(100) DEFAULT NULL COMMENT '职业分类',
|
||
|
|
`sub_category` VARCHAR(100) DEFAULT NULL COMMENT '子分类',
|
||
|
|
`template_id` BIGINT DEFAULT NULL COMMENT '使用的模板ID',
|
||
|
|
`satisfaction_rating` TINYINT DEFAULT NULL COMMENT '满意度评分(1-5)',
|
||
|
|
`generation_time` INT DEFAULT NULL COMMENT '生成耗时(毫秒)',
|
||
|
|
`ip_address` VARCHAR(45) DEFAULT NULL COMMENT '用户IP地址',
|
||
|
|
`user_agent` TEXT DEFAULT NULL COMMENT '用户代理信息',
|
||
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `idx_user_id` (`user_id`),
|
||
|
|
KEY `idx_created_at` (`created_at`),
|
||
|
|
KEY `idx_optimization_type` (`optimization_type`),
|
||
|
|
KEY `idx_industry` (`industry`),
|
||
|
|
KEY `idx_template_id` (`template_id`),
|
||
|
|
KEY `idx_user_created` (`user_id`, `created_at`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='优化历史记录表';
|
||
|
|
|
||
|
|
-- 2. 优化历史标签表(用于存储优化建议标签)
|
||
|
|
CREATE TABLE `optimization_tags` (
|
||
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
|
|
`history_id` BIGINT NOT NULL COMMENT '历史记录ID',
|
||
|
|
`tag_name` VARCHAR(50) NOT NULL COMMENT '标签名称',
|
||
|
|
`tag_type` VARCHAR(20) DEFAULT 'optimization' COMMENT '标签类型',
|
||
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `idx_history_id` (`history_id`),
|
||
|
|
KEY `idx_tag_name` (`tag_name`),
|
||
|
|
CONSTRAINT `fk_optimization_tags_history` FOREIGN KEY (`history_id`) REFERENCES `optimization_history` (`id`) ON DELETE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='优化历史标签表';
|
||
|
|
|
||
|
|
-- 3. 用户使用统计表
|
||
|
|
CREATE TABLE `user_usage_stats` (
|
||
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
|
|
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
|
|
`date` DATE NOT NULL COMMENT '统计日期',
|
||
|
|
`generation_count` INT DEFAULT 0 COMMENT '生成次数',
|
||
|
|
`total_time_saved` INT DEFAULT 0 COMMENT '节省时间(分钟)',
|
||
|
|
`avg_rating` DECIMAL(3,2) DEFAULT NULL COMMENT '平均评分',
|
||
|
|
`total_ratings` INT DEFAULT 0 COMMENT '总评分次数',
|
||
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `uk_user_date` (`user_id`, `date`),
|
||
|
|
KEY `idx_date` (`date`),
|
||
|
|
KEY `idx_user_id` (`user_id`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户使用统计表';
|
||
|
|
|
||
|
|
-- 4. 优化历史收藏表
|
||
|
|
CREATE TABLE `optimization_favorites` (
|
||
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
|
|
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
|
|
`history_id` BIGINT NOT NULL COMMENT '历史记录ID',
|
||
|
|
`favorite_name` VARCHAR(100) DEFAULT NULL COMMENT '收藏名称',
|
||
|
|
`notes` TEXT DEFAULT NULL COMMENT '备注',
|
||
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `uk_user_history` (`user_id`, `history_id`),
|
||
|
|
KEY `idx_user_id` (`user_id`),
|
||
|
|
KEY `idx_history_id` (`history_id`),
|
||
|
|
CONSTRAINT `fk_favorites_history` FOREIGN KEY (`history_id`) REFERENCES `optimization_history` (`id`) ON DELETE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='优化历史收藏表';
|
||
|
|
|
||
|
|
-- 5. 系统配置表(用于存储系统级配置)
|
||
|
|
CREATE TABLE `system_config` (
|
||
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
|
|
`config_key` VARCHAR(100) NOT NULL COMMENT '配置键',
|
||
|
|
`config_value` TEXT NOT NULL COMMENT '配置值',
|
||
|
|
`config_type` VARCHAR(20) DEFAULT 'string' COMMENT '配置类型',
|
||
|
|
`description` VARCHAR(255) DEFAULT NULL COMMENT '配置描述',
|
||
|
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `uk_config_key` (`config_key`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|
||
|
|
|
||
|
|
-- 插入默认配置
|
||
|
|
INSERT INTO `system_config` (`config_key`, `config_value`, `config_type`, `description`) VALUES
|
||
|
|
('max_history_per_user', '1000', 'integer', '每个用户最大历史记录数'),
|
||
|
|
('history_retention_days', '365', 'integer', '历史记录保留天数'),
|
||
|
|
('enable_analytics', 'true', 'boolean', '是否启用使用分析'),
|
||
|
|
('default_optimization_type', '提示词优化', 'string', '默认优化类型');
|
||
|
|
|
||
|
|
-- 创建索引优化
|
||
|
|
-- 复合索引用于常用查询
|
||
|
|
CREATE INDEX `idx_user_type_created` ON `optimization_history` (`user_id`, `optimization_type`, `created_at`);
|
||
|
|
CREATE INDEX `idx_user_rating` ON `optimization_history` (`user_id`, `satisfaction_rating`);
|
||
|
|
|
||
|
|
-- 分区表(可选,用于大数据量场景)
|
||
|
|
-- ALTER TABLE optimization_history PARTITION BY RANGE (YEAR(created_at)) (
|
||
|
|
-- PARTITION p2024 VALUES LESS THAN (2025),
|
||
|
|
-- PARTITION p2025 VALUES LESS THAN (2026),
|
||
|
|
-- PARTITION p_future VALUES LESS THAN MAXVALUE
|
||
|
|
-- );
|