feat: 添加产品列表集合初始化脚本,包含字段定义、索引创建及校验逻辑
This commit is contained in:
57
docs/pb_tbl_product_list.md
Normal file
57
docs/pb_tbl_product_list.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# pb_tbl_product_list
|
||||
|
||||
> 来源:产品表字段草图(用户提供)与现有 PocketBase 表设计规范
|
||||
> 类型:`base`
|
||||
> 读写规则:公开可读(PocketBase `listRule = ""`、`viewRule = ""`);新增 / 修改 / 删除仅 `ManagePlatform` / 管理角色允许
|
||||
|
||||
## 表用途
|
||||
|
||||
用于存储产品主数据,承载型号、分类、方案、通讯、供电、标签、价格等信息,并为前端产品列表检索与筛选提供统一数据源。
|
||||
|
||||
## 字段清单
|
||||
|
||||
| 字段名 | 类型 | 必填 | 说明 |
|
||||
| :--- | :--- | :---: | :--- |
|
||||
| `id` | `text` | 是 | PocketBase 记录主键 |
|
||||
| `prod_list_id` | `text` | 是 | 产品列表业务 ID,唯一标识 |
|
||||
| `prod_list_name` | `text` | 是 | 产品名称 |
|
||||
| `prod_list_modelnumber` | `text` | 否 | 产品型号 |
|
||||
| `prod_list_icon` | `text` | 否 | 产品图标,保存 `tbl_attachments.attachments_id` |
|
||||
| `prod_list_description` | `text` | 否 | 产品说明(editor 内容,建议保存 Markdown 或已净化 HTML) |
|
||||
| `prod_list_feature` | `text` | 否 | 产品特色 |
|
||||
| `prod_list_parameters` | `json` | 否 | 产品参数(JSON 对象/数组) |
|
||||
| `prod_list_plantype` | `text` | 否 | 产品方案 |
|
||||
| `prod_list_category` | `text` | 是 | 产品分类(必填,单选) |
|
||||
| `prod_list_sort` | `number` | 否 | 排序值(同分类内按升序) |
|
||||
| `prod_list_comm_type` | `text` | 否 | 通讯类型 |
|
||||
| `prod_list_series` | `text` | 否 | 产品系列 |
|
||||
| `prod_list_power_supply` | `text` | 否 | 供电方式 |
|
||||
| `prod_list_tags` | `text` | 否 | 产品标签(辅助检索,以 `|` 聚合) |
|
||||
| `prod_list_status` | `text` | 否 | 产品状态(有效 / 过期 / 主推等) |
|
||||
| `prod_list_basic_price` | `number` | 否 | 基础价格 |
|
||||
| `prod_list_remark` | `text` | 否 | 备注 |
|
||||
|
||||
## 索引
|
||||
|
||||
| 索引名 | 类型 | 说明 |
|
||||
| :--- | :--- | :--- |
|
||||
| `idx_tbl_product_list_prod_list_id` | `UNIQUE INDEX` | 保证 `prod_list_id` 唯一 |
|
||||
| `idx_tbl_product_list_prod_list_name` | `INDEX` | 加速按产品名称检索 |
|
||||
| `idx_tbl_product_list_prod_list_modelnumber` | `INDEX` | 加速按产品型号检索 |
|
||||
| `idx_tbl_product_list_prod_list_status` | `INDEX` | 加速按产品状态过滤 |
|
||||
| `idx_tbl_product_list_prod_list_category` | `INDEX` | 加速按产品分类过滤 |
|
||||
| `idx_tbl_product_list_prod_list_sort` | `INDEX` | 加速按排序值检索 |
|
||||
| `idx_tbl_product_list_category_sort` | `INDEX` | 加速分类内排序计算 |
|
||||
| `idx_tbl_product_list_prod_list_series` | `INDEX` | 加速按产品系列过滤 |
|
||||
| `idx_tbl_product_list_prod_list_tags` | `INDEX` | 加速标签检索(模糊筛选场景) |
|
||||
|
||||
## 补充约定
|
||||
|
||||
- `prod_list_icon` 仅保存附件业务 ID,真实文件统一在 `tbl_attachments`。
|
||||
- 当前预构建脚本中已将 `listRule` 与 `viewRule` 设置为空字符串(`""`),对应 PocketBase 的“任何人可查看”。
|
||||
- `prod_list_parameters` 使用 PocketBase `json` 字段,写入时应直接提交对象/数组,不建议再二次字符串化。
|
||||
- `prod_list_description` 作为 editor 内容字段,建议统一为 Markdown 或净化后的 HTML;若允许 HTML,需在写入前做 XSS 白名单过滤。
|
||||
- 前端渲染 `prod_list_description` 时应保持和存储格式一致(Markdown 渲染器或受控 HTML 渲染),避免直接注入未净化内容。
|
||||
- `prod_list_basic_price` 使用 `number`,如需货币精度策略建议后续统一为“分”或固定小数位。
|
||||
- PocketBase 系统字段 `created`、`updated` 仍然存在,只是不在 collection 字段清单里单独声明。
|
||||
- 本文档为预构建结构说明,尚未执行线上建表。
|
||||
Reference in New Issue
Block a user