在数据库中，每条数据都有 3 个字段：

- `collector`：这条数据的上传者的 ID；
- `reviewer`：需要到实地对这条数据进行**核查**的外业人员的 ID，大多数情况下 `collector != reviewer`；
- `status`：状态字段。

将这 3 个字段结合起来分析，可以识别一条数据在整个工作流程中当前所处的阶段。

一条数据从被导入数据库中到被核查，会经历以下 3 个阶段：

| collector | reviewer | status | 阶段                  |
| --------- |----------| ------ |---------------------|
| -1        | -1       | 0      | 数据刚被导入到数据库中         |
| -1        | A        | 0      | 管理员将数据分配给外业人员 A     |
| -1        | A        | 1      | 外业人员 A 已经在实地核查过这条数据 |

如果一条数据原本不在数据库中（即所谓的“新增”数据），那么它从被上传到被核查，会经历以下 3 个阶段：

| collector | reviewer | status | 阶段                  |
|-----------|----------|--------|---------------------|
| A         | -1       | 1      | 外业人员 A 上传了这条数据      |
| A         | B        | 0      | 管理员将数据分配给外业人员 B     |
| A         | B        | 1      | 外业人员 B 已经在实地核查过这条数据 |

管理员还可以在网页端对**已经被外业人员核查过的数据**进行审核，如果管理员认为数据没问题，则标记为审核通过：

| status |
|--------|
| 2      |

如果管理员将数据标记为审核未通过：

| status |
|--------|
| -1     |
