# 03 Genotyping - reference 表录入说明

来源：`docs/architecture/03-genotyping-data-flow.md`

## 录入目标

`reference` 表示具体参考序列，例如 chromosome、contig 或 scaffold。它属于一个 `reference_set`，下游可以分页保存序列片段。

## 上下游关系

| 类型 | 内容 |
| --- | --- |
| 表 | `reference` |
| Java 实体 | `ReferenceEntity` |
| 前置依赖 | `reference_set` |
| 下游引用 | `reference_bases` |
| API | `/brapi/v2/references` |

## 字段录入

| 字段 | 业务意义 | 录入方式 | 校验规则 |
| --- | --- | --- | --- |
| `id` | reference 主键 | 系统生成；导入时可指定 | 必填、唯一 |
| `auth_user_id` | 数据所属用户 | 登录上下文自动写入 | 不允许前端手填 |
| `reference_name` | 参考序列名称 | 用户录入 | 建议必填 |
| `reference_set_id` | 所属 reference_set | ReferenceSet 选择器 | 必选，必须存在 |
| `length` | 序列长度 | 数字输入/导入 | 可选，非负 |
| `md5checksum` | 序列校验值 | 文本 | 可选 |
| `source_divergence` | 与来源差异度 | 数字输入 | 可选 |

## 页面与交互

- Reference 列表页支持按 referenceSet、referenceName 查询。
- Reference 详情页展示 reference_bases 分页和长度、checksum 信息。

## 关键校验

1. `reference_set_id` 必须存在。
2. 删除 reference 前检查 `reference_bases`。
3. 若维护 `reference_bases`，建议校验分页总长度与 `length` 的一致性。
