1+ -- 程序员技术练兵场数据库建表语句
2+ -- 数据库名:coder-test
3+
4+ -- 创建数据库(如果不存在)
5+ CREATE
6+ DATABASE IF NOT EXISTS ` coder-test` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
7+
8+ USE
9+ ` coder-test` ;
10+
11+ -- 用户表
12+ CREATE TABLE `user `
13+ (
14+ ` id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ' 主键' ,
15+ ` username` VARCHAR (50 ) NOT NULL COMMENT ' 用户名' ,
16+ ` password` VARCHAR (255 ) NOT NULL COMMENT ' 密码(加密存储)' ,
17+ ` nickname` VARCHAR (50 ) DEFAULT NULL COMMENT ' 用户昵称' ,
18+ ` salary` INT DEFAULT 10000 COMMENT ' 当前薪资(单位:元/月)' ,
19+ ` createTime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT ' 创建时间' ,
20+ ` updateTime` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' 更新时间' ,
21+ ` isDelete` TINYINT DEFAULT 0 COMMENT ' 逻辑删除(0-未删除,1-已删除)' ,
22+ PRIMARY KEY (` id` ),
23+ UNIQUE KEY ` uk_username` (` username` ),
24+ KEY ` idx_createTime` (` createTime` )
25+ ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_unicode_ci COMMENT= ' 用户表' ;
26+
27+ -- 关卡表
28+ CREATE TABLE `level `
29+ (
30+ ` id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ' 主键' ,
31+ ` levelName` VARCHAR (200 ) NOT NULL COMMENT ' 关卡名称' ,
32+ ` levelDesc` TEXT NOT NULL COMMENT ' 关卡需求描述' ,
33+ ` options` TEXT NOT NULL COMMENT ' 关卡选项(JSON格式存储)' ,
34+ ` difficulty` VARCHAR (200 ) NOT NULL COMMENT ' 难度等级(简单,中等,困难)' ,
35+ ` targetSalary` INT DEFAULT 10000 COMMENT ' 目标薪资范围(用于难度匹配)' ,
36+ ` createTime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT ' 创建时间' ,
37+ ` updateTime` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' 更新时间' ,
38+ ` isDelete` TINYINT DEFAULT 0 COMMENT ' 逻辑删除(0-未删除,1-已删除)' ,
39+ PRIMARY KEY (` id` ),
40+ KEY ` idx_difficulty` (` difficulty` ),
41+ KEY ` idx_targetSalary` (` targetSalary` ),
42+ KEY ` idx_createTime` (` createTime` )
43+ ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_unicode_ci COMMENT= ' 关卡表' ;
44+
45+ -- 用户关卡表(记录用户闯关信息)
46+ CREATE TABLE `user_level `
47+ (
48+ ` id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ' 主键' ,
49+ ` userId` BIGINT NOT NULL COMMENT ' 用户ID' ,
50+ ` levelId` BIGINT NOT NULL COMMENT ' 关卡ID' ,
51+ ` userOptions` TEXT NOT NULL COMMENT ' 用户选择的选项(JSON格式存储)' ,
52+ ` score` INT DEFAULT 0 COMMENT ' 得分(0-100分)' ,
53+ ` comment` TEXT DEFAULT NULL COMMENT ' 评价' ,
54+ ` salaryChange` INT DEFAULT 0 COMMENT ' 薪资变化(正数为加薪,负数为减薪)' ,
55+ ` suggest` TEXT DEFAULT NULL COMMENT ' 公司投递建议' ,
56+ ` reason` TEXT DEFAULT NULL COMMENT ' 评分原因' ,
57+ ` trueOptions` TEXT DEFAULT NULL COMMENT ' 正确选项(JSON格式存储)' ,
58+ ` standardAnswer` TEXT DEFAULT NULL COMMENT ' 标准答案解析' ,
59+ ` createTime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT ' 创建时间' ,
60+ ` updateTime` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' 更新时间' ,
61+ ` isDelete` TINYINT DEFAULT 0 COMMENT ' 逻辑删除(0-未删除,1-已删除)' ,
62+ PRIMARY KEY (` id` ),
63+ KEY ` idx_userId` (` userId` ),
64+ KEY ` idx_levelId` (` levelId` ),
65+ KEY ` idx_score` (` score` ),
66+ KEY ` idx_createTime` (` createTime` )
67+ ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_unicode_ci COMMENT= ' 用户关卡表' ;
0 commit comments