- 新增 openapi-miniapp-company.yaml 文件,定义 tbl_company 的基础 CRUD 接口文档,包括查询、创建、更新和删除公司记录的详细描述和示例。 - 新增 pocketbase.file-fields-to-attachments.js 脚本,用于迁移 PocketBase 中的文件字段到文本字段,并处理 tbl_attachments 集合的公开规则。
5.0 KiB
5.0 KiB
PocketBase 文档相关表结构
本方案新增 3 张 PocketBase base collection,统一采用业务 id 字段进行关联,不直接依赖 PocketBase 自动生成的 id 作为业务主键。
补充约定:
document_image、document_video、document_file只保存关联的attachments_id,不直接存文件;当存在多个附件时,统一使用|分隔,例如:ATT-001|ATT-002|ATT-003。document_type使用多选字符串持久化,但格式特殊:system_dict_id@dict_word_enum|system_dict_id@dict_word_enum;前端显示时用枚举值描述,存库时保留该组合值。document_keywords、document_product_categories、document_application_scenarios、document_hotel_type统一使用竖线分隔字符串,例如:分类A|分类B|分类C。document_status仅允许有效、过期两种值,并由系统根据生效日期与到期日期自动计算;当两者都为空时默认有效。document_owner的业务含义为“上传者openid”。attachments_link是 PocketBasefile字段,保存附件本体;访问链接由 PocketBase 根据记录和文件名生成。tbl_attachments的文件查看/下载权限应保持公开;真正的业务访问控制交由引用attachments_id的业务表和业务接口决定。- 文档字段中,面向用户填写的字段里只有
document_title、document_type设为必填,其余字段均允许为空。
1. tbl_attachments 附件表
类型: Base Collection
| 字段名 | 类型 | 备注 |
|---|---|---|
| attachments_id | text | 附件业务 id,唯一标识符 |
| attachments_link | file | 附件本体,单文件,不限制文件类型,数据库字段上限已放宽到约 4GB |
| attachments_filename | text | 原始文件名 |
| attachments_filetype | text | 文件类型/MIME |
| attachments_size | number | 附件大小 |
| attachments_owner | text | 上传者业务 id |
| attachments_md5 | text | 附件 MD5 码 |
| attachments_ocr | text | OCR 识别结果 |
| attachments_status | text | 附件状态 |
| attachments_remark | text | 备注 |
索引规划:
attachments_id唯一索引attachments_owner普通索引attachments_status普通索引
2. tbl_document 文档表
类型: Base Collection
| 字段名 | 类型 | 备注 |
|---|---|---|
| document_id | text | 文档业务 id,唯一标识符 |
| document_effect_date | date | 文档生效日期 |
| document_expiry_date | date | 文档到期日期 |
| document_type | text | 文档类型,必填;多选时按 `system_dict_id@dict_word_enum |
| document_title | text | 文档标题,必填 |
| document_subtitle | text | 文档副标题 |
| document_summary | text | 文档摘要 |
| document_content | text | 正文内容,保存 Markdown 原文 |
| document_image | text | 关联多个 attachments_id,使用 ` |
| document_video | text | 关联多个 attachments_id,使用 ` |
| document_file | text | 关联多个 attachments_id,使用 ` |
| document_owner | text | 上传者openid |
| document_relation_model | text | 关联机型/模型标识 |
| document_keywords | text | 关键词,多选后用 ` |
| document_share_count | number | 分享次数 |
| document_download_count | number | 下载次数 |
| document_favorite_count | number | 收藏次数 |
| document_status | text | 文档状态,仅允许 有效 或 过期,由系统依据生效日期和到期日期自动更新 |
| document_embedding_status | text | 文档嵌入状态 |
| document_embedding_error | text | 文档错误原因 |
| document_embedding_lasttime | date | 最后更新日期 |
| document_vector_version | text | 向量版本号或模型名称 |
| document_product_categories | text | 产品关联文档,多选后从 文档-产品关联文档 字典保存为 ` |
| document_application_scenarios | text | 筛选依据,多选后从 文档-筛选依据 字典保存为 ` |
| document_hotel_type | text | 适用场景,多选后从 文档-适用场景 字典保存为 ` |
| document_remark | text | 备注 |
索引规划:
document_id唯一索引document_owner普通索引document_type普通索引document_status普通索引document_embedding_status普通索引document_effect_date普通索引document_expiry_date普通索引
3. tbl_document_operation_history 文档操作历史表
类型: Base Collection
| 字段名 | 类型 | 备注 |
|---|---|---|
| doh_id | text | 文档操作历史业务 id,唯一标识符 |
| doh_document_id | text | 关联 document_id |
| doh_operation_type | text | 操作类型 |
| doh_user_id | text | 操作人业务 id |
| doh_current_count | number | 本次操作对应次数 |
| doh_remark | text | 备注 |
索引规划:
doh_id唯一索引doh_document_id普通索引doh_user_id普通索引doh_operation_type普通索引