Files
aitsc/scripts/ensure_evaluation_schema_mysql.sql

49 lines
2.8 KiB
MySQL
Raw Normal View History

-- 评价 / 对比功能所需结构(在已有库上增量执行;若列或表已存在会报错,可忽略对应语句)
-- MySQL 5.7+ / 8.0
-- 1. prompt_history 扩展字段(模型 history_models.PromptHistory 依赖)
-- 分两条执行:避免 AFTER 依赖列名/顺序;若某列已存在会报 Duplicate column可忽略该条
ALTER TABLE prompt_history
ADD COLUMN comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID';
ALTER TABLE prompt_history
ADD COLUMN is_comparison_enabled TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否参与对比';
ALTER TABLE prompt_history ADD INDEX idx_comparison_group (comparison_group_id);
-- 若上面因「列已存在」失败,说明已执行过,可继续执行下面建表。
-- 2. 评价表(与 evaluation_models.PromptEvaluation 一致)
CREATE TABLE IF NOT EXISTS prompt_evaluation (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
history_id INT NOT NULL COMMENT '历史记录ID',
user_id INT NOT NULL COMMENT '评价者用户ID',
clarity_rating TINYINT NULL COMMENT '清晰度评分',
specificity_rating TINYINT NULL COMMENT '具体性评分',
effectiveness_rating TINYINT NULL COMMENT '有效性评分',
professionalism_rating TINYINT NULL COMMENT '专业性评分',
completeness_rating TINYINT NULL COMMENT '完整性评分',
is_best_version TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为最佳版本',
comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID',
overall_rating TINYINT NULL COMMENT '综合评分',
comments TEXT NULL COMMENT '评价意见',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_history_id (history_id),
INDEX idx_user_id (user_id),
INDEX idx_comparison_group (comparison_group_id),
CONSTRAINT fk_pe_history FOREIGN KEY (history_id) REFERENCES prompt_history(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='提示词评价表';
-- 3. 对比组表
CREATE TABLE IF NOT EXISTS comparison_group (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
group_id VARCHAR(64) NOT NULL COMMENT '对比组ID',
user_id INT NOT NULL COMMENT '创建者用户ID',
name VARCHAR(100) NULL COMMENT '对比组名称',
description TEXT NULL COMMENT '对比组描述',
is_public TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否公开',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY uk_group_id (group_id),
INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='对比组表';