llm-survey/database/init_database.sql
2025-02-20 15:34:19 +08:00

73 lines
2.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 创建数据库
CREATE DATABASE IF NOT EXISTS llm_survey DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE llm_survey;
-- 创建用户表
CREATE TABLE IF NOT EXISTS users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL COMMENT '姓名',
phone VARCHAR(20) NOT NULL COMMENT '手机号码',
work_area VARCHAR(20) NOT NULL COMMENT '工作领域',
position_type VARCHAR(20) NOT NULL COMMENT '岗位性质',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_phone (phone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
-- 创建问题表
CREATE TABLE IF NOT EXISTS questions (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
question_number INT NOT NULL COMMENT '问题序号',
content TEXT NOT NULL COMMENT '问题内容',
question_type VARCHAR(20) NOT NULL COMMENT '问题类型',
work_area VARCHAR(20) COMMENT '针对的工作领域NULL表示通用问题',
is_required BOOLEAN DEFAULT TRUE COMMENT '是否必答',
next_question_logic JSON COMMENT '跳转逻辑',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_question_number (question_number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问题表';
-- 创建选项表
CREATE TABLE IF NOT EXISTS options (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
question_id BIGINT NOT NULL COMMENT '关联的问题ID',
option_code VARCHAR(10) NOT NULL COMMENT '选项代码如A、B、C',
content TEXT NOT NULL COMMENT '选项内容',
requires_text BOOLEAN DEFAULT FALSE COMMENT '是否需要填写文本',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (question_id) REFERENCES questions(id),
UNIQUE KEY uk_question_option (question_id, option_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问题选项表';
-- 创建答案表
CREATE TABLE IF NOT EXISTS survey_responses (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL COMMENT '用户ID',
question_id BIGINT NOT NULL COMMENT '问题ID',
selected_options JSON COMMENT '选中的选项代码列表',
text_answer TEXT COMMENT '文本答案',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (question_id) REFERENCES questions(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问卷答案表';
-- 插入基础问题数据
INSERT INTO questions (question_number, content, question_type, is_required) VALUES
(1, '您的工作领域', 'SINGLE_CHOICE', TRUE),
(2, '岗位性质', 'SINGLE_CHOICE', TRUE);
-- 插入基础选项数据
INSERT INTO options (question_id, option_code, content) VALUES
(1, 'A', '研发'),
(1, 'B', '项目'),
(1, 'C', '保险'),
(1, 'D', '财务'),
(1, 'E', '运营'),
(1, 'F', '客服'),
(1, 'G', '综合管理');
INSERT INTO options (question_id, option_code, content) VALUES
(2, 'A', '管理岗'),
(2, 'B', '技术岗'),
(2, 'C', '业务岗'),
(2, 'D', '职能支持岗');