面试题数据库设计
面试题库需求
题目
可以创建 单选、多选、填空、多选且需有顺序、迫选题、引用类型·表格、Javascript编程题、HTML编程题、问答题;(题型)
可以区分难度(非必要,1: 非常简单,2: 简单,3: 中等,4: 难,5: 非常难)
可以区分一级分类(例:前端、后端、心理测试等)
可以区分二级分类(例:前端:逻辑题、编程题等)
有标准答案的题目,用户可以录入答案,用于系统自动批改【待定】
试卷
可以按照题型、难度、一级分类、二级分类筛选题目,用户自行组合题目生成试卷
可以根据用户给定的题型分布、难度分布、一级分类、二级分类分布随机抽取题目生成试卷
其他
提交试卷后自动批改【待定】
相关结果提交到内部群
流程
- 生成面试任务流程:创建/编辑题目草稿 --> 发布题目 --> 创建/编辑试卷 -->
发布试卷 --> 选择试卷(可多份)新建面试任务
面试官把面试任务生成的试卷链接发给面试者
面试者提交问卷,系统初步批改【待定】,发到内部微信群
后续拓展功能
系统自动批改
新建试卷时自定义跳题功能
ER图
数据库表
question_bank[面试题库] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
question_id | varchar(32) | 题目id | |
required | tinyint(1) | 是否必填 | |
max_choices | tinyint(4) | 最多可选 | |
min_choices | tinyint(4) | 最少可选 | |
question_type | tinyint(4) | 问题类型 | 0:单选;1:多选;2:填空;3:多选且需有顺序;4:迫选题;5: 引用类型·表格;7:Javascript编程题;8:HTML编程题;9:问答题; |
question_class | tinyint(4) | 问题分类 | 0:前端 |
question_content | varchar(1000) | 题目描述 | 题目附加描述,富文本 |
create_time | datetime | 创建时间 | |
creator_name | varchar(50) | 创建者名称 | |
question_column_id | varchar(32) | 题目一级分类 | |
question_class_id | varchar(32) | 题目二级分类 | |
difficulty | tinyint(4) | 题目难度 | 0:未设置,1: 非常简单,2: 简单,3: 中等,4: 难,5: 非常难' |
is_del | tinyint(4) | 是否删除 | 0: 否,1:是 |
CREATE TABLE `question_bank` (
`question_id` varchar(32) NOT NULL DEFAULT '' COMMENT '题目id',
`required` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否必填',
`max_choices` tinyint(4) NOT NULL DEFAULT '0' COMMENT '最多可选(多选时有效);0:无限制',
`min_choices` tinyint(4) NOT NULL DEFAULT '0' COMMENT '最少需选(多选时有效);0:不限制',
`question_type` tinyint(4) NOT NULL COMMENT '问题类型;0:单选;1:多选;2:填空;3:多选且需有顺序;4:迫选题;5: 引用类型·表格;7:Javascript编程题;8:HTML编程题;9:问答题;',
`question_class` tinyint(4) NOT NULL COMMENT '问题分类;0:前端',
`question_content` varchar(1000) DEFAULT NULL COMMENT '题目描述;题目附加描述,富文本',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`creator_name` varchar(50) NOT NULL DEFAULT '' COMMENT '创建者名称',
`question_column_id` varchar(32) NOT NULL DEFAULT '' COMMENT '题目一级分类',
`question_class_id` varchar(32) NOT NULL DEFAULT '' COMMENT '题目二级分类',
`difficulty` tinyint(4) NOT NULL DEFAULT '0' COMMENT '题目难度0:未设置,1: 非常简单,2: 简单,3: 中等,4: 难,5: 非常难',
`is_del` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0: 否,1:是',
PRIMARY KEY (`question_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='面试题目表';
question_choice[题目选项表] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
question_choice_id | varchar(32) | 题目选项id | |
question_id | varchar(32) | 题目id | |
question_choice_type | tinyint(4) | 选项类型 | 0:选择;1:填空 |
question_choice_content | varchar(3000) | 选项内容 | |
required | tinyint(1) | 是否必选 | 0-非必选;1-必选(当题目为多选时有效) |
is_exclude | tinyint(1) | 是否互斥 | 1/是 0/否 |
create_time | datetime | 创建时间 | |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:已删除 |
CREATE TABLE `question_choice` (
`question_choice_id` varchar(32) NOT NULL DEFAULT '' COMMENT '题目选项id',
`question_id` varchar(32) NOT NULL DEFAULT '' COMMENT '题目id',
`question_choice_type` tinyint(4) NOT NULL COMMENT '选项类型 0:选择;1:填空',
`question_choice_content` varchar(3000) NOT NULL DEFAULT '' COMMENT '选项内容',
`required` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否必选:0-非必选;1-必选(当题目为多选时有效)',
`is_exclude` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否互斥:1/是 0/否',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`is_del` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除0:未删除,1:已删除',
PRIMARY KEY (`question_choice_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='题目选项表';
examination_questions[试卷试题关联表] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
examination_questions_id | varchar(32) | 流水号 | |
examination_paper_id | varchar(32) | 试卷id | |
question_id | varchar(32) | 题目id | |
question_sort | tinyint(11) | 题目排序 | |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:已删除 |
CREATE TABLE `examination_questions` (
`examination_questions_id` varchar(32) NOT NULL COMMENT '流水号',
`examination_paper_id` varchar(32) NOT NULL COMMENT '试卷id',
`question_id` varchar(32) NOT NULL COMMENT '题目id',
`question_sort` tinyint(11) NOT NULL COMMENT '题目排序',
`is_del` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除0:未删除,1:已删除',
PRIMARY KEY (`examination_questions_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试卷试题关联表';
examination_paper[试卷表] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
examination_paper_id | varchar(32) | 试卷id | |
examination_paper_name | varchar(50) | 试卷名称 | |
create_time | datetime | 创建时间 | |
examination_paper_description | varchar(1000) | 试卷描述 | |
creator_name | varchar(50) | 创建者名称 | |
revisor_name | varchar(50) | 更新者名称 | |
update_time | datetime | 更新时间 | |
question_column_id | varchar(32) | 试卷(题目)一级分类id | |
difficulty | tinyint(4) | 难度 | 0:未设置,1: 非常简单,2: 简单,3: 中等,4: 难,5: 非常难 |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:删除 |
CREATE TABLE `examination_paper` (
`examination_paper_id` tinyint(32) NOT NULL COMMENT '试卷id',
`examination_paper_name` varchar(50) NOT NULL DEFAULT '' COMMENT '试卷名称',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`examination_paper_description` varchar(1000) NOT NULL DEFAULT '' COMMENT '试卷描述',
`creator_name` varchar(50) NOT NULL DEFAULT '' COMMENT '创建者名称',
`revisor_name` varchar(50) NOT NULL DEFAULT '' COMMENT '更新者名称',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`question_column_id` varchar(32) NOT NULL DEFAULT '' COMMENT '试卷(题目)一级分类id',
`difficulty` tinyint(4) NOT NULL DEFAULT '0' COMMENT '难度0:未设置,1: 非常简单,2: 简单,3: 中等,4: 难,5: 非常难',
`is_del` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除0:未删除,1:删除',
PRIMARY KEY (`examination_paper_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试卷表';
question_columns[题目一级分类列表] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
question_column_id | VARCHAR(32) | 一级分类ID | |
question_column_name | VARCHAR(32) | 一级分类名称 | |
create_time | DATETIME | 创建时间 | |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:已删除 |
CREATE TABLE question_columns(
`question_column_id` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '一级分类ID' ,
`question_column_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '一级分类名称' ,
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
`is_del` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0:未删除,1:已删除' ,
PRIMARY KEY (question_column_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT = '题目一级分类列表';
question_classes[题目二级分类列表] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
question_class_id | VARCHAR(32) | 二级分类ID | |
question_class_name | VARCHAR(32) | 二级分类名称 | |
question_column_id | VARCHAR(32) | 一级分类ID | |
create_time | DATETIME | 创建时间 | |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:已删除 |
CREATE TABLE question_classes(
`question_class_id` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '二级分类ID' ,
`question_class_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '二级分类ID名称' ,
`question_column_id` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '一级分类ID' ,
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
`is_del` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除0:未删除,1:已删除' ,
PRIMARY KEY (question_class_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT = '题目二级分类列表';
examination_task[面试任务] | |||
---|---|---|---|
字段 | 类型 | 备注 | 说明 |
task_id | VARCHAR(32) | 任务ID | |
task_name | VARCHAR(50) | 任务名称 | |
examination_paper_ids | VARCHAR(32) | 试卷ID,多个,逗号隔开 | |
create_time | DATETIME | 创建时间 | |
creator_name | VARCHAR(32) | 创建人名称 | |
revisor_name | VARCHAR(32) | 更新人名称 | |
update_time | DATETIME | 更新时间 | |
is_del | tinyint(4) | 是否删除 | 0:未删除,1:已删除 |
CREATE TABLE examination_task(
`task_id` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '任务ID' ,
`task_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '任务名称' ,
`examination_paper_ids` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '试卷ID,多个,逗号隔开' ,
`created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
`creator_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '创建人名称' ,
`revisor_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '更新人名称' ,
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间' ,
`is_del` VARCHAR(1) NOT NULL DEFAULT 0 COMMENT '是否删除0:未删除,1:已删除' ,
PRIMARY KEY (task_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT = '面试任务';