# 正式题干导入说明

当前系统已经按 6 套量表建立正式题量和题号，后端评分算法依赖题号，不依赖题干文字。拿到授权题干后，只需要替换 `questions.prompt`，不要改 `code`。

## 题号范围

| 量表 | testPaperId | 题号 code 范围 |
| --- | --- | --- |
| EPQ | `EPQ-2058` | `2058001` - `2058090` |
| SCL-90 | `SCL90-2078` | `2078001` - `2078090` |
| 16PF | `PF16-2081` | `2081001` - `2081187` |
| SDS | `SDS-2082` | `2082001` - `2082020` |
| SAS | `SAS-2083` | `2083001` - `2083020` |
| SQA | `SQA-2084` | `2084001` - `2084029` |

## CSV 格式

```csv
code,prompt
2058001,这里填写正式授权题干
2058002,这里填写正式授权题干
```

## 选项文案定稿（按量表）

系统按量表维度读取统一选项文案，不按单题存储。请在上线前定稿以下 6 套选项：

- EPQ：`是 / 否`
- 16PF：`A / B / C`
- SDS / SAS：`没有或很少 / 小部分时间 / 相当多时间 / 绝大部分时间`
- SCL-90：`没有 / 很轻 / 中等 / 偏重 / 严重`
- SQA：`完全赞同 / 比较赞同 / 中立 / 比较不赞同 / 完全不赞同`

建议把最终版本登记到 `docs/templates/scale-options-final.csv`。

生成 6 套模板：

```bash
./scripts/generate-question-templates.sh
```

## SQL 导入示例

确认 CSV 内容经过授权后，可进入数据库执行：

```sql
create temporary table question_prompts(code varchar(80), prompt text);
\copy question_prompts(code, prompt) from '/path/to/questions.csv' with csv header;
update questions q
set prompt = qp.prompt
from question_prompts qp
where q.code = qp.code;
drop table question_prompts;
```

## 注意

- 不要改 `code`，否则后端算法无法匹配。
- 不要把反向计分、维度计分键放到前端或 CSV。
- CSV 只保存题干，不保存评分规则。
- 导入前先备份数据库。
