# 3. 选用 SQLite 作为默认数据库 日期: 2026-03-09 ## 状态 已采纳 ## 背景 MADF 系统需要存储用户信息、论坛配置、对话历史等结构化数据。考虑到项目初期部署的便捷性以及未来可能的扩展需求。备选方案包括 PostgreSQL, MySQL, SQLite。 ## 决策 选择 **SQLite** 作为默认开发与单机部署数据库,同时保留 **PostgreSQL** 兼容性。 ## 理由 1. **零配置 (Zero-Configuration)**: SQLite 是基于文件的数据库,无需安装额外的服务器进程,极大地简化了本地开发和 Docker 部署流程(只需挂载一个文件)。 2. **足以应付中小规模**: 对于圆桌论坛这种读写并发量中等的应用,现代 SQLite (配合 WAL 模式) 的性能完全足够。 3. **LibSQL 兼容**: 项目使用 `libsql-client`,支持无缝迁移到 Turso 等边缘数据库,兼顾了本地开发的便捷与云端扩展的潜力。 4. **数据一致性**: 支持 ACID 事务,确保多智能体并发写入时的数据完整性。 ## 后果 - 无法利用 PostgreSQL 的一些高级特性(如复杂的 JSONB 查询优化、向量插件 pgvector),需在应用层处理或后续迁移。 - 垂直扩展受限,但通过应用层设计(如 Redis 缓冲)可缓解。