概述
Flexible Database Design 是一套针对半结构化、多源异构数据的 SQLite 数据库设计方法论,核心解决「字段不固定、来源多样、需求常变」的存储难题。其「主干硬、尾巴软」的三层架构(原始层→软字段层→业务视图层)兼顾了数据完整性与查询灵活性,特别适合个人知识管理、政策信息收集、财务报表归档、PDF报告库等场景。
核心用法
1. Discovery 阶段:Agent 引导用户确认数据来源、固定字段、变动字段、全文检索需求、数据量等关键信息
2. 场景模板选择:从知识库、政策追踪、财报收集、表单问卷等7种预设模板快速匹配
3. Schema 生成与落地:复制模板 SQL,最小化调整字段枚举,按需启用 FTS 全文检索
4. 脚本适配与验证:部署 Python CLI 工具链(归档、查询、管理),完成端到端测试
显著优点
- 架构清晰:三层演进模型避免初期过度设计,支持按需扩展
- 场景覆盖广:内置7种典型场景模板,开箱即用
- 中文检索友好:提供 FTS + LIKE 回退、短词拆分等中文优化策略
- 工具链完整:含归档、查询、批量导入、数据验证等 CLI 脚本
- 溯源能力强:原始层保留完整数据,支持版本追溯与字段补录
潜在局限
- 性能天花板:SQLite 在万级以上数据量时 LIKE 查询性能下降,需评估或迁移至外部搜索引擎
- 中文分词限制:FTS5 的 unicode61 对中文支持有限,复杂场景需额外配置 jieba 或 Meilisearch
- PDF 处理依赖:扫描件 PDF 无法自动提取正文,需人工标记或跳过
- Schema 变更成本:虽比传统关系型灵活,但业务视图层的大幅改动仍需手动调整
适合人群
- 需要整合多来源碎片化信息的个人知识管理者
- 追踪政策、财报等动态信息的分析师与研究员
- 构建轻量级数据归档系统的中小团队
- 希望避免重型数据库运维成本的 SQLite 用户
常规风险
- 数据一致性:软字段层的 JSON/key-value 缺乏强约束,需约定命名规范(snake_case、命名空间)
- 查询性能陷阱:高频查询条件未提键值对并建索引时,可能触发全表扫描
- FTS 召回率:纯依赖 FTS5 的中文检索可能漏检,务必实现 recall() 回退机制
- 存储路径管理:PDF 等文件的 file_path 建议使用相对路径,避免跨环境失效