T03 · Cloudflare D1 索引系统

101创富精灵 H5 · Phase 2 Week 3-5 · 2026-04-26
✅ 完成 P0 Cloudflare D1 Schema 设计

📦 交付成果(已完成)

🗄️

schema/d1-schema.sql — D1 数据库 Schema

6 张核心表:files(文件索引)、tags(标签体系)、file_tags(多对多关联)、keywords(关键词索引)、tasks(任务状态)、logs(操作日志)。内置 11 个默认标签(项目/行业/学习/合同/财税/客户/创意等)。

📚

schema/sqlite-schema.sql — SQLite 开发版

与 D1 Schema 完全兼容的 SQLite 版本,支持本地开发测试,无需 Cloudflare 账号即可运行。

🧩

assets/js/d1-client.js — D1 客户端封装

完整 TypeScript/JSDoc 风格的 D1 操作类,提供 insertFile / listFiles / search / getTags / tagFile / createTask 等 12 个方法,Workers 中通过 env.AIH5_D1 访问。

⚙️

wrangler.toml — D1/R2 绑定配置

预配置 D1 和 R2 绑定,UUID 占位符标注清晰,主公填入真实 ID 后即可使用。

📝

schema/d1-setup.sh — 一键初始化脚本

自动化 D1 创建 + Schema 执行 + 验证,内含详细注释和分步日志。

🗄️ 数据库 Schema 概览

表名用途索引
files文件元数据索引status, type, created, hash
tags层级标签体系parent_id, priority
file_tags文件-标签关联tag_id
keywords关键词全文索引keyword
tasks异步任务队列status, file_id
logs操作审计日志table, action
-- 示例:查询待处理文件 + 标签 SELECT f.id, f.name, f.type, f.status, GROUP_CONCAT(t.name) as tags FROM files f LEFT JOIN file_tags ft ON f.id = ft.file_id LEFT JOIN tags t ON ft.tag_id = t.id WHERE f.status = 'pending' GROUP BY f.id ORDER BY f.created_at DESC LIMIT 20;

🚀 初始化步骤(主公操作)

⚠️ 前置条件:API Token 需要 D1 权限
Cloudflare Dashboard → My Profile → API Tokens → 编辑现有 Token → 添加 Zone → D1: Edit 权限。
# 步骤1:创建 D1 数据库 wrangler d1 create aih5-d1 --location apac # → 返回 UUID,复制到 wrangler.toml 的 database_id # 步骤2:执行 Schema wrangler d1 execute aih5-d1 --env production --file=schema/d1-schema.sql # 步骤3:验证 8 张表 wrangler d1 execute aih5-d1 --env production --command="SELECT name FROM sqlite_master WHERE type='table';" # 步骤4:验证默认标签 wrangler d1 execute aih5-d1 --env production --command="SELECT * FROM tags LIMIT 5;"
✅ 所有 Schema 文件已部署至 aih5-deploy。wrangler.toml 中已预配置 D1 绑定占位符,主公填入 UUID 即可启用。

🏷️ 初始标签体系(11 个)

标签名颜色层级
项目文件#3b82f6一级
行业资料#10b981一级
学习资料#f59e0b一级
合同协议#ef4444一级
财税资料#8b5cf6一级
客户资料#06b6d4一级
创意构想#ec4899一级
其他资料#64748b一级
PDF文档#dc2626二级(项目文件)
图片扫描#16a34a二级(项目文件)
Word文档#2563eb二级(项目文件)

🔗 T03 对下游任务的影响

🔗

T04 Webhook 对接 → 需要 D1 写入文件记录

D1 schema 中的 files 表和 file_tags 表是 T04 Webhook 回调数据写入的目标表。

🔗

T05 文件采集模块 → 需要 D1 查询/搜索

文件上传后写入 files 表,搜索功能依赖 keywords 关键词索引表。

🔗

T06 AI 自动分类 → 需要 D1 任务队列

tasks 表记录 AI 分类任务状态,file_tags 表存储 AI 推荐的标签。