Skip to content

Commit a8df8c6

Browse files
committed
后端 - 数据库表设计
1 parent 192d1e1 commit a8df8c6

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

database/create_tables.sql

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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

Comments
 (0)