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