# 表单引擎 - 数据模型文档

> **版本**: v1.0  
> **最后更新**: 2026-01-11  
> **维护者**: FFOA 开发团队  
> **状态**: 🚧 Draft（基于现有文档与代码实现推导）

---

## ✅ 机器读取区（必填）

### Schema 摘要

| 字段 | 内容 |
|------|------|
| Schema 名称 | `platform_form` |
| 业务域 | 表单定义、版本、实例、发布与翻译 |
| 核心实体 | FormDefinition、FormVersion、FormInstance、ReleaseSnapshot |

### 实体字段清单（最小）

| 实体 | 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|------|
| FormDefinition | id | UUID | ✅ | 表单定义 ID |
| FormDefinition | key | string | ✅ | 不可变表单标识 |
| FormDefinition | name | string | ✅ | 表单名称 |
| FormDefinition | status | enum | ✅ | DRAFT/PUBLISHED/DISABLED/ARCHIVED |
| FormVersion | id | UUID | ✅ | 表单版本 ID |
| FormVersion | definitionId | UUID | ✅ | 关联表单定义 |
| FormVersion | version | number | ✅ | 版本号 |
| FormVersion | schema | JSON | ✅ | JSON Schema |
| FormVersion | status | enum | ✅ | DRAFT/PENDING_REVIEW/PUBLISHED/REJECTED/DEPRECATED |
| FormInstance | id | UUID | ✅ | 表单实例 ID |
| FormInstance | formDefinitionId | UUID | ✅ | 关联表单定义 |
| FormInstance | formVersionId | UUID | ✅ | 关联版本（不可变） |
| FormInstance | businessKey | string | ✅ | 业务单号（唯一） |
| FormInstance | data | JSON | ✅ | 表单数据 |
| FormInstance | status | enum | ✅ | DRAFT/SUBMITTED/PENDING_APPROVAL/APPROVED/REJECTED/WITHDRAWN/CANCELLED |
| ReleaseSnapshot | id | UUID | ✅ | 发布快照 ID |
| ReleaseSnapshot | formDefinitionId | UUID | ✅ | 关联表单定义 |
| ReleaseSnapshot | formVersionId | UUID | ✅ | 关联表单版本 |
| ReleaseSnapshot | status | enum | ✅ | DRAFT/PENDING/REJECTED/ACTIVE/ARCHIVED |
| FormTranslation | id | UUID | ✅ | 翻译记录 ID |
| FormTranslation | versionId | UUID | ✅ | 关联版本 |
| FormTranslation | locale | string | ✅ | 语言标识 |
| FormTemplate | id | UUID | ✅ | 模板 ID |
| FormTemplate | template | JSON | ✅ | 模板内容 |

### 关系与约束

| 关系/约束 | 说明 |
|-----------|------|
| FormDefinition 1:N FormVersion | 一个表单定义对应多个版本 |
| FormDefinition 1:N FormInstance | 一个表单定义对应多个实例 |
| FormVersion 1:N FormInstance | 实例绑定具体版本，不可变 |
| FormVersion 1:N FormTranslation | 版本级多语言 |
| ReleaseSnapshot 1:N FormInstance | 实例可绑定发布快照 |
| FormTemplate 独立 | 模板用于创建表单 |
| businessKey 唯一 | FormInstance.businessKey 全局唯一 |

---

## 🧭 人类阅读区（可选）

### 详细表结构（如需）

见 `backend/prisma/schema/platform_form.prisma`。
