# pb_tbl_system_dict

> 来源：线上 PocketBase collection 回读、`script/pocketbase.js`、`script/pocketbase.dictionary.js`
> 类型：`base`
> 读写规则：公开可读；仅 `ManagePlatform` / 管理角色可写

## 表用途

用于存储系统字典与枚举组。当前项目中，文档类型、关键词、产品关联文档、筛选依据、适用场景等前端多选项都来自本表。

## 字段清单

| 字段名 | 类型 | 必填 | 说明 |
| :--- | :--- | :---: | :--- |
| `id` | `text` | 是 | PocketBase 记录主键 |
| `system_dict_id` | `text` | 是 | 字典业务 ID |
| `dict_name` | `text` | 是 | 字典名称，当前按全局唯一维护 |
| `dict_word_enum` | `text` | 否 | 枚举值集合，底层以聚合字符串保存 |
| `dict_word_description` | `text` | 否 | 枚举描述集合，底层以聚合字符串保存 |
| `dict_word_is_enabled` | `bool` | 否 | 字典是否启用 |
| `dict_word_sort_order` | `text` | 否 | 枚举排序集合，底层以聚合字符串保存 |
| `dict_word_parent_id` | `text` | 否 | 父级字典业务 ID |
| `dict_word_remark` | `text` | 否 | 备注 |
| `dict_word_image` | `text` | 否 | 枚举图片附件 ID 集合，和枚举值一一对应 |
| `is_delete` | `number` | 否 | 软删除标记，`0` 表示未删除，`1` 表示已删除，默认 `0` |

## 索引

| 索引名 | 类型 | 说明 |
| :--- | :--- | :--- |
| `idx_system_dict_id` | `UNIQUE INDEX` | 保证 `system_dict_id` 唯一 |
| `idx_dict_name` | `UNIQUE INDEX` | 保证 `dict_name` 唯一 |
| `idx_dict_word_parent_id` | `INDEX` | 加速父子字典查询 |

## 补充约定

- 业务返回时，hooks 会把聚合字段转换成 `items[]` 结构，每个元素包含 `enum`、`description`、`image`、`imageUrl`、`sortOrder`。
- `is_delete` 用于软删除控制，字典废弃时建议优先标记为 `1`。
- 集合默认查询规则已内置 `is_delete = 0`，字典列表/详情默认隐藏已软删除项。
- 字典项图片本体统一存放在 `tbl_attachments`，本表只保存 `attachments_id`。
- PocketBase 系统字段 `created`、`updated` 仍然存在，只是不在 collection 字段清单里单独声明。
