496 lines
23 KiB
Markdown
496 lines
23 KiB
Markdown
# 统计技能电子考试系统
|
||
|
||
## 需求说明
|
||
|
||
### 环境
|
||
|
||
Windows 7 64位 单机版
|
||
Windows 10 64位 单机版
|
||
|
||
### 其他
|
||
|
||
不同身份的人,在考试过程中使用的题是不一样的。
|
||
|
||
### 试题结构说明
|
||
|
||
- 试题类型:单选题、多选题、填空题、问答题
|
||
- 试题内容:
|
||
+ 单选题:每题包括问题描述、问题配图(可选,base64,可能有多个)、问题数据集(较大的json字符串,可能有多个数据集),每题可能包含多个小题,每小题有4个选项,每个小题都应该有唯一正确的答案。
|
||
+ 填空题:每题包括问题描述、问题配图(可选,base64,可能有多个)、问题数据集(较大的json字符串,可能有多个数据集),每题可能包含多个填空处(包括数据集内的填空处和题目内的填空处),每小题有一个填空框,每个空都应该有正确答案。
|
||
+ 填表题:每题包括问题描述、待完成的数据表格,需要考生按照要求把表格中的空白格填入正确的数据。每个空格都有唯一的正确答案。
|
||
+ 问答题:每题包括问题描述、问题配图(可选,base64,可能有多个)、问题数据集(较大的json字符串,可能有多个数据集),每题可能有多个问题,每个问题都需要一个长文本答案,每个问题都应该有一个参考答案(问答题需要人工评分)。
|
||
- 考试方式:进入考试时程序从题库中随机抽取指定类型、指定数量的试题并按随机顺序排列,考试者需要在规定时间内完成所有试题的填写。
|
||
- 考试结束:考试结束后,程序将本次考试的试题、答题、正确答案(参考答案)、考试时间、考试人员等信息进行排版并保存为PDF文件,文件名称为“姓名_考试时间.pdf”,保存在电脑桌面上。
|
||
- 评分标准:
|
||
+ 单选题:与正确答案完全一致才算正确。
|
||
+ 多选题:与正确答案完全一致才算正确。
|
||
+ 填空题:与正确答案完全一致才算正确。
|
||
+ 问答题:人工评分。
|
||
|
||
#### 试题示例
|
||
|
||
```text
|
||
某企业2025年6月30日资产负债表数据如下:
|
||
流动资产:1200万元(其中存货300万元)
|
||
流动负债:800万元
|
||
计算该企业的流动比率(保留两位小数)。
|
||
|
||
正确答案:1.50
|
||
```
|
||
|
||
```text
|
||
某市政府2025年一般公共预算支出明细如下:
|
||
基本支出(人员经费 + 日常公用经费):180万元
|
||
项目支出(发展类项目):20万元
|
||
总支出:200万元
|
||
计算基本支出占总支出的百分比(保留一位小数)。
|
||
|
||
正确答案:90.0%
|
||
```
|
||
|
||
```text
|
||
某企业2024年财务报表及某市政府2025年公共预算支出明细如下表所示,请根据表格数据完成计算。
|
||
|
||
表1:企业A 2024年财务报表摘要(单位:万元)
|
||
项目 金额
|
||
营业收入 5000
|
||
净利润 800
|
||
年初应收账款余额 400
|
||
年末应收账款余额 600
|
||
流动资产 1500
|
||
流动负债 1000
|
||
平均净资产 4000
|
||
|
||
表2:某市政府2025年公共预算支出明细(单位:万元)
|
||
支出类别 金额
|
||
基本支出(人员经费) 1200
|
||
基本支出(公用经费) 300
|
||
项目支出(发展类) 500
|
||
项目支出(民生类) 200
|
||
总预算支出 2200
|
||
|
||
问题与填空要求
|
||
企业财务指标计算:
|
||
计算企业A的 流动比率(保留两位小数):流动比率 = ______
|
||
计算企业A的 应收账款周转率(次数,保留一位小数):周转率 = ______次
|
||
计算企业A的 净资产收益率(ROE)(百分比,保留一位小数):ROE = ______%
|
||
公共预算支出分析:
|
||
计算基本支出(人员经费 + 公用经费)占总预算支出的 百分比(保留一位小数):占比 = ______%
|
||
若上级要求基本支出占比不超过 60%,判断该政府是否达标(填写“是”或“否”):______
|
||
|
||
正确答案:
|
||
1.50
|
||
10.0
|
||
20.0
|
||
68.2
|
||
否
|
||
```
|
||
|
||
### 页面规划
|
||
|
||
- 欢迎页:提供2个入口,”参加考试“和”管理系统“,点击”参加考试“进入考试页面,点击”管理系统“进入管理页面,欢迎页要展示软件版本号和题库版本号。
|
||
+ 管理入口:提供用户管理、试题管理、考试管理等功能。
|
||
+ 输入管理密码页:输入正确的管理密码才可以进入管理系统。
|
||
+ 试题管理:提供试题的添加、删除、修改、查询等功能。添加、修改中支持上传图片和导入数据集(可能是excel文件)。每次试题变化后,都要为当前题库生成唯一的正序的题库版本号(这是单机软件,因为在实际上机考试时要确认各台机器的题库版本号是否一致)。
|
||
+ 人员管理:提供考试人员的添加、删除、修改、查询等功能。支持批量导入人员信息(excel文件)。支持批量删除人员信息。
|
||
+ 考试管理:提供考试的添加、删除、修改、查询等功能,考试信息包括考试名称、时间、各类型试题题量(各类题型的小题数)、分值设置(各类试题的小题分值)。
|
||
+ 系统初始化
|
||
+ 参加考试:提供考试页面,包括试题展示、答题、提交等功能。
|
||
+ 输入考生信息页:输入正确的考生姓名、身份证号、手机号才可以进入考试系统,信息来源于人员管理中维护的数据。
|
||
+ 考试确认页:随机抽题组生成本次试卷,结合考生信息、考试时间等形成唯一考试数据,展示考试说明(固定内容),提供“开始考试”入口。
|
||
+ 考试页面:展示试题,支持单选题、多选题、填空题、问答题的答题功能。考试页面强制全屏,具备防切出机制,切出5次后,在第6次切出时强制结束考试。考试页面具备倒计时功能,
|
||
+ 单选题:支持单选项选择。
|
||
+ 填空题:支持填空内容输入。
|
||
+ 填表题:支持数据表格的补充填写。
|
||
+ 问答题:支持长文本输入。
|
||
+ 提交页:提供提交按钮,点击提交按钮将考试数据提交入库,生成试卷PDF文件。
|
||
|
||
## 实现方案
|
||
|
||
### 技术选型
|
||
|
||
Electron + SQLite + bootstrap + fontawesome
|
||
|
||
### 管理员密码
|
||
|
||
t2t6a9
|
||
|
||
### 数据库设计
|
||
|
||
本应用是单机应用,没有网络环境,所以需要考虑到单机环境下的数据管理问题。
|
||
|
||
单机环境下我们使用SQLite数据库,设计两个库,system.db和user.db,其中system.db为系统库,系统管理员的操作可以更改system.db中的数据,user.db为用户库,考生的操作可以更改user.db中的数据。
|
||
|
||
本应用需要数据与应用分离,所以需要将数据库文件与应用程序文件分离,数据库文件的路径需要在应用程序中配置。
|
||
|
||
#### 系统库 system.db
|
||
|
||
说明:system.db是系统数据库,只有系统管理员的操作才会更改系统库。
|
||
|
||
##### 系统配置
|
||
|
||
###### config 系统配置表
|
||
|
||
| 字段名 | 字段类型 | 字段描述 |
|
||
| --- | --- | --- |
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
| key | text | 配置名称 |
|
||
| value | text | 配置值 |
|
||
|
||
> 已知的配置项:
|
||
+ 管理员密码(admin_password)
|
||
+ 题库版本号(question_bank_version)
|
||
|
||
##### 数据字典
|
||
|
||
###### dict_types 字典类型表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|type_code|TEXT|字典类型编码(唯一标识,如 "question_category"、"user_role")|
|
||
|type_name|TEXT NOT NULL|字典类型名称(如 "题型分类"、"用户角色")|
|
||
|description|TEXT|字典类型的描述信息(可选)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### dict_items 字典项表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|字典项唯一标识(自增主键)|
|
||
|type_code|TEXT NOT NULL|关联到 dict_types.type_code,表示字典项所属类型(如 "question_type")|
|
||
|item_code|TEXT NOT NULL|字典项编码(唯一标识,如 "choice"、"admin")|
|
||
|item_name|TEXT NOT NULL|字典项名称(如 "选择题"、"管理员")|
|
||
|item_value|TEXT|字典项的额外信息(如排序、扩展字段,可选)|
|
||
|parent_code|TEXT|父级字典项编码(用于构建树形结构,如 "objective" 是 "choice" 的父级)|
|
||
|is_active|BOOLEAN DEFAULT 1|是否启用(1=启用,0=禁用)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
> 字典示例
|
||
-- 1. 定义字典类型
|
||
INSERT INTO dict_types (type_code, type_name, description) VALUES
|
||
('question_category', '题型分类', '用于区分客观题和主观题'),
|
||
('question_type', '题型', '存储所有题型(选择题、填空题等)');
|
||
-- 2. 插入题型分类(客观题、主观题)
|
||
INSERT INTO dict_items (type_code, item_code, item_name, item_value) VALUES
|
||
('question_category', 'objective', '客观题', '有固定答案,机器可自动评分'),
|
||
('question_category', 'subjective', '主观题', '需人工评分,答案不唯一');
|
||
-- 3. 插入题型(选择题、填空题等),并关联到分类
|
||
INSERT INTO dict_items (type_code, item_code, item_name, parent_code, item_value) VALUES
|
||
('question_type', 'choice', '选择题', 'objective', '包含单选和多选'),
|
||
('question_type', 'fill_blank', '填空题', 'objective', '填写空白处的答案'),
|
||
('question_type', 'fill_table', '填表题', 'objective', '填写表格内容'),
|
||
('question_type', 'true_false', '判断题', 'objective', '判断对错'),
|
||
('question_type', 'short_answer', '问答题', 'subjective', '简短回答问题'),
|
||
('question_type', 'analysis', '分析题', 'subjective', '需要分析问题'),
|
||
('question_type', 'essay', '论述题', 'subjective', '详细论述');
|
||
|
||
|
||
##### 试题
|
||
|
||
###### questions 题干表(问题主表)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_type|TEXT NOT NULL|问题类型(关联到 dict_types.type_code)|
|
||
|question_name|TEXT NOT NULL DEFAULT ''|问题名称|
|
||
|question_description|TEXT NOT NULL DEFAULT ''|问题描述|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_datasets 题干的配套数据集表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|dataset_name|TEXT NOT NULL DEFAULT ''|数据集名称|
|
||
|dataset_data|TEXT NOT NULL|数据集数据的json字符串|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_images 题干的配图表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|image_name|TEXT NOT NULL DEFAULT ''|图片名称|
|
||
|image_base64|TEXT NOT NULL|图片文件的base64编码|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_fill_table 填表问题的表格表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|table_name|TEXT NOT NULL DEFAULT ''|表格名称|
|
||
|table_data|TEXT NOT NULL|表格数据的json字符串|
|
||
|table_description|TEXT NOT NULL DEFAULT ''|表格描述|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_fill_table_blanks 填表问题的表格填空表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|table_id|INTEGER NOT NULL|关联到 question_fill_table.id|
|
||
|cell_position|TEXT NOT NULL|填空单元格的位置(如 "A1"、"B2")|
|
||
|cell_type|TEXT NOT NULL DEFAULT 'number'|填空单元格的类型(如 "text"、"number")|
|
||
|correct_answer|TEXT NOT NULL DEFAULT ''|填空单元格的正确答案(如 "123"、"456")|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_choices 选择题问题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|choice_description|TEXT NOT NULL DEFAULT ''|选择题的描述(含占位符__blank__)|
|
||
|choice_type|TEXT NOT NULL DEFAULT 'single'|选择题类型(如 "single"、"multiple")|
|
||
|choice_options|TEXT NOT NULL|选项的数组字符串|
|
||
|correct_answers|TEXT NOT NULL|正确答案的索引序列(如 "0,1"、"2,3,4")|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_fill_blanks 填空题问题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|blank_description|TEXT NOT NULL DEFAULT ''|填空题的描述(含填空占位符__blank__)|
|
||
|blank_count|INTEGER NOT NULL DEFAULT 0|填空数量|
|
||
|correct_answers|TEXT NOT NULL DEFAULT ''|填空处的正确答案序列(如 "123,456")|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_short 简答题/论述题/分析题表(含参考答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|short_ask|TEXT NOT NULL DEFAULT ''|简答题/论述题/分析题的问题|
|
||
|short_answer_ref|TEXT NOT NULL DEFAULT ''|简答题/论述题/分析题的参考答案|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### question_judge 判断题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|question_id|INTEGER NOT NULL|关联到 questions.id|
|
||
|judge_ask|TEXT NOT NULL DEFAULT ''|判断题的问题|
|
||
|judge_answer|INTEGER NOT NULL|判断题的答案(0 或 1)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
##### 考试
|
||
|
||
###### exam 考试表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|exam_name|TEXT NOT NULL DEFAULT ''|考试名称|
|
||
|exam_description|TEXT NOT NULL DEFAULT ''|考试描述|
|
||
|exam_examinee_type|TEXT NOT NULL DEFAULT ''|考试考生类型(如 "student"、"teacher")|
|
||
|exam_notice|TEXT NOT NULL DEFAULT ''|考试须知(长文本Markdown语法可展示在页面上|
|
||
|exam_minutes|INTEGER NOT NULL DEFAULT 0|考试时长(分钟)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
##### 考生
|
||
|
||
###### examinee 考生表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_type|TEXT NOT NULL DEFAULT ''|考生类型(如 "student"、"teacher")|
|
||
|examinee_name|TEXT NOT NULL DEFAULT ''|考生姓名|
|
||
|examinee_gender|TEXT NOT NULL DEFAULT ''|考生性别|
|
||
|examinee_unit|TEXT NOT NULL DEFAULT ''|考生单位|
|
||
|examinee_position|TEXT NOT NULL DEFAULT ''|考生职务|
|
||
|examinee_id_card|TEXT NOT NULL DEFAULT ''|考生身份证号|
|
||
|examinee_phone|TEXT NOT NULL DEFAULT ''|考生手机号|
|
||
|examinee_event|TEXT NOT NULL DEFAULT ''|考生报名赛项|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
#### 考生库 user.db
|
||
|
||
##### 操作日志
|
||
|
||
###### examinee_log 考生操作日志表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_id|INTEGER NOT NULL|关联到 exam_examinee.id|
|
||
|operation|TEXT NOT NULL DEFAULT ''|操作类型(如 "login"、"logout")|
|
||
|operation_time|TIMESTAMP NOT NULL|操作时间|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
##### 参加考试
|
||
|
||
###### examinee_exam 考生考试表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_id|INTEGER NOT NULL|关联到 exam_examinee.id|
|
||
|exam_name|TEXT NOT NULL DEFAULT ''|考试名称|
|
||
|exam_description|TEXT NOT NULL DEFAULT ''|考试描述|
|
||
|exam_examinee_type|TEXT NOT NULL DEFAULT ''|考试考生类型(如 "student"、"teacher")|
|
||
|exam_notice|TEXT NOT NULL DEFAULT ''|考试须知(长文本Markdown语法可展示在页面上|
|
||
|exam_minutes|INTEGER NOT NULL DEFAULT 0|考试时长(分钟)|
|
||
|start_time|TEXT NOT NULL|考试开始时间|
|
||
|latest_end_time|TEXT NOT NULL|考试最晚结束时间|
|
||
|end_time|TEXT NOT NULL|考试结束时间|
|
||
|exam_duration|INTEGER NOT NULL DEFAULT 0|实际考试时长(分钟)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|updated_at|TEXT|记录更新时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### examinee_papers 考生试卷主表
|
||
|
||
这是在考生参加时,从system库中的exam表中查询出的考试信息。
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_id|INTEGER NOT NULL|关联到 examinee.id|
|
||
|exam_id|INTEGER NOT NULL|关联到 exam.id|
|
||
|paper_minutes|INTEGER NOT NULL DEFAULT 0|试卷时长(分钟)|
|
||
|paper_total_score|INTEGER NOT NULL DEFAULT 0|试卷总分(根据system库中的exam_question_set表计算得到)|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
这种表应该是只读的表,所以不需要updated_at字段。
|
||
|
||
###### paper_questions 考生试卷问题表
|
||
|
||
这是从system库中根据exam_question_set表中的配置,从questions表中查询出的数据组成本次考试的试卷。
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_paper_id|INTEGER NOT NULL|关联到 examinee_papers.id|
|
||
|question_type|TEXT NOT NULL|问题类型(关联到 dict_types.type_code)|
|
||
|question_name|TEXT NOT NULL DEFAULT ''|问题名称|
|
||
|question_description|TEXT NOT NULL DEFAULT ''|问题描述|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
这种表应该是只读的表,所以不需要updated_at字段。
|
||
|
||
###### paper_question_datasets 题干的配套数据集表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|dataset_name|TEXT NOT NULL DEFAULT ''|数据集名称|
|
||
|dataset_data|TEXT NOT NULL|数据集数据的json字符串|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_images 题干的配图表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|image_name|TEXT NOT NULL DEFAULT ''|图片名称|
|
||
|image_base64|TEXT NOT NULL|图片文件的base64编码|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_fill_table 填表问题的表格表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|table_name|TEXT NOT NULL DEFAULT ''|表格名称|
|
||
|table_data|TEXT NOT NULL|表格数据的json字符串|
|
||
|table_description|TEXT NOT NULL DEFAULT ''|表格描述|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_fill_table_blanks 填表问题的表格填空表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|paper_dataset_id|INTEGER NOT NULL|关联到 paper_datasets.id|
|
||
|cell_position|TEXT NOT NULL|填空单元格的位置(如 "A1"、"B2")|
|
||
|cell_type|TEXT NOT NULL DEFAULT 'number'|填空单元格的类型(如 "text"、"number")|
|
||
|correct_answer|TEXT NOT NULL DEFAULT ''|填空单元格的正确答案(如 "123"、"456")|
|
||
|score|REAL NOT NULL DEFAULT 0|填空单元格的分值|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_choices 选择题问题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|choice_description|TEXT NOT NULL DEFAULT ''|选择题的描述(含占位符__blank__)|
|
||
|choice_type|TEXT NOT NULL DEFAULT 'single'|选择题类型(如 "single"、"multiple")|
|
||
|choice_options|TEXT NOT NULL|选项的数组字符串|
|
||
|correct_answers|TEXT NOT NULL|正确答案的索引序列(如 "0,1"、"2,3,4")|
|
||
|score|REAL NOT NULL DEFAULT 0|选择题的分值|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_fill_blanks 填空题问题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|blank_description|TEXT NOT NULL DEFAULT ''|填空题的描述(含填空占位符__blank__)|
|
||
|blank_count|INTEGER NOT NULL DEFAULT 0|填空数量|
|
||
|correct_answers|TEXT NOT NULL DEFAULT ''|填空处的正确答案序列(如 "123,456")|
|
||
|score|REAL NOT NULL DEFAULT 0|填空题的分值|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_short 简答题/论述题/分析题表(含参考答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|short_ask|TEXT NOT NULL DEFAULT ''|简答题/论述题/分析题的问题|
|
||
|short_answer_ref|TEXT NOT NULL DEFAULT ''|简答题/论述题/分析题的参考答案|
|
||
|score|REAL NOT NULL DEFAULT 0|简答题/论述题/分析题的分值|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_question_judge 判断题表(含答案)
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|judge_ask|TEXT NOT NULL DEFAULT ''|判断题的问题|
|
||
|judge_answer|INTEGER NOT NULL|判断题的答案(0 或 1)|
|
||
|score|REAL NOT NULL DEFAULT 0|判断题的分值|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|
||
###### paper_answers 考生试卷答案表
|
||
|
||
|字段名|字段类型|字段描述|
|
||
|---|---|---|
|
||
|id|INTEGER PRIMARY KEY AUTOINCREMENT|主键|
|
||
|examinee_paper_id|INTEGER NOT NULL|关联到 examinee_papers.id|
|
||
|paper_question_id|INTEGER NOT NULL|关联到 paper_questions.id|
|
||
|paper_question_item_id|INTEGER NOT NULL|多态的方式关联到各个具体的小题表id|
|
||
|answer|TEXT NOT NULL DEFAULT ''|考生的答案|
|
||
|get_score|REAL NOT NULL DEFAULT 0|考生的得分|
|
||
|created_at|TEXT|记录创建时间(默认 CURRENT_TIMESTAMP)|
|
||
|