drawdb 深度分析报告
一句话总结
零注册、零安装、纯浏览器端的免费数据库 ER 图设计工具——用 4.8 万行 React 代码证明了「简单到极致就是最好的产品力」。
值得关注的理由
- 独立开发者的爆款标杆:1ilit 一人在 KrispAI 全职工作之余打造,31 个月内从零做到 37k star,是个人开源项目的教科书级案例
- 隐私优先的纯前端架构:所有数据用 IndexedDB 存在本地,schema 不离开浏览器,在数据安全日益重要的当下定位精准
- 低门槛但高完成度:支持 6 种数据库方言(MySQL/PostgreSQL/SQLite/SQL Server/MariaDB/Oracle)、双向操作(设计→SQL / SQL→设计)、37 种语言国际化
项目展示

drawdb 主编辑器界面,展示数据库表关系设计和拖拽式 ER 图构建。
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | https://github.com/drawdb-io/drawdb |
| Star / Fork | 37,022 / 2,974 |
| 代码行数 | 47,523 行(JavaScript 50.7%, JSX 28.4%, JSON 19.6%) |
| 项目年龄 | 31 个月(首次提交 2023-09-19) |
| 开发阶段 | 稳定维护(近 90 天 42 commits) |
| 贡献模式 | 单人主导(1ilit 贡献 72%,Top 3 占 86.5%) |
| 热度定位 | 大众热门(数据库 ERD 编辑器赛道 star 数第一) |
| 质量评级 | 代码[良好] 文档[基本] 测试[薄弱] |
作者视角:为什么存在这个项目
创始人/作者背景
1ilit 是一位全栈开发者,在 KrispAI 工作的同时独立维护 drawDB。他的个人项目包括 oracle-sql-parser(用 PEG.js 实现的 Oracle SQL 解析器),显示出对数据库工具和解析器的深入兴趣。drawDB 从个人 side-project 成长为 37k star 的热门开源工具,属于「独立开发者的意外爆款」。
问题判断
数据库设计工具市场长期被商业产品(dbdiagram.io、Lucidchart、ER/Studio)垄断,要么需要付费,要么需要注册账号,要么功能过重。开源方案要么功能简陋,要么已经停止维护。1ilit 看到了「零门槛 + 隐私优先 + 完全免费」这个被忽视的空白——数据库设计不应该比使用 Google Docs 更复杂。
解法哲学
- 极简体验 > 功能完整:无需注册、无需安装、打开浏览器就能用
- 隐私作为卖点:所有处理在客户端完成,IndexedDB 本地存储,schema 不离开浏览器
- 双向操作:不仅可以从设计导出 SQL,还可以导入 SQL 反向生成 ER 图
- 明确不做什么:不做后端托管(有可选的 drawdb-server)、不做 AI 辅助(与 chartdb 的差异化选择)
战略意图
drawDB 是 1ilit 在数据库工具领域的探索,目前无明确的商业化路径(AGPL-3.0 协议)。Warp(AI 终端)提供了赞助,说明项目已获得开发者工具生态的认可。drawdb-server(160 star)作为可选后端支持分享功能,未来可能成为增值服务的基础。
核心价值提炼
创新之处
-
纯前端数据库设计工具的完整实现(新颖度 3/5 | 实用性 5/5) 用 React + IndexedDB 实现了传统需要后端的完整数据库设计工具链,包括 6 种数据库方言的 SQL 生成/解析、ER 图可视化、拖拽式表关系编辑。
-
多数据库方言抽象层(新颖度 2/5 | 实用性 5/5) 统一的数据模型能同时生成 MySQL、PostgreSQL、SQLite、SQL Server、MariaDB、Oracle 六种方言的 SQL,降低了数据库工具的碎片化。
可复用的模式与技巧
- IndexedDB + Dexie.js 做本地优先应用:schema 数据全在客户端,无服务端依赖——适用于所有隐私优先型工具
- React SPA 极简架构:components + pages + utils + context 四层,适合中小型前端项目快速起步
- i18n 社区驱动翻译:37 种语言由社区贡献,通过 i18n 文件集中管理
关键设计决策
- AGPL-3.0 协议:选择强 copyleft 协议保护项目,防止闭源商业化分支。Trade-off:限制了企业嵌入使用,但保护了项目独立性
- 纯前端架构:所有计算在客户端完成。Trade-off:大型 schema(100+ 表)性能受限,但换来了零部署成本和隐私保护
- ControlPanel 为核心的编辑器架构:252 次修改集中在 ControlPanel 组件,说明选择了高度集中的控制面板模式而非分散的工具栏
竞品格局与定位
竞品对比矩阵
| 维度 | drawDB | chartdb | dbdiagram.io | Azimutt | Liam ERD |
|---|---|---|---|---|---|
| Star | 37k | 21.7k | 商业 | 1.9k | 4k |
| 价格 | 免费 | 免费 | 免费/付费 | 免费/付费 | 免费 |
| 注册要求 | 无 | 无 | 需注册 | 需注册 | 无 |
| AI 辅助 | ❌ | ✅ | ❌ | ❌ | ❌ |
| 数据库方言 | 6 种 | 多种 | DBML | 多种 | Rails/Prisma |
| 实时协作 | ❌(需 server) | ❌ | ✅(付费) | ✅ | ❌ |
| 隐私保护 | ✅(纯客户端) | ✅ | ❌ | ❌ | ✅ |
差异化护城河
- 零门槛护城河:无需注册 + 无需安装 + 完全免费,是竞品最难复制的体验优势
- Star 数领先:37k star 在赛道内遥遥领先,形成了社区认知的先发优势
- 多数据库方言覆盖:6 种主流数据库的 SQL 生成/解析能力是技术壁垒
竞争风险
- chartdb 的 AI 辅助功能是直接的差异化威胁,如果 AI 辅助成为用户习惯,drawDB 可能需要跟进
- dbdiagram.io 的 DBML 语法和团队协作功能对企业用户更有吸引力
- 缺少实时协作是最大的功能短板
生态定位
数据库设计领域的「Canva」——通过极致简单让非专业人士也能设计数据库 schema,同时足够强大让专业开发者日常使用
套利机会分析
- 信息差: 项目已是赛道第一,但纯前端 + IndexedDB 的架构模式值得在其他工具类应用中复制
- 技术借鉴: React SPA + Dexie.js 本地优先的架构,可直接迁移到其他「零后端」工具项目
- 生态位: 填补了「零注册 + 隐私优先 + 免费开源」的数据库设计工具空白
- 趋势判断: 隐私优先 + 本地优先(local-first)是工具类应用的趋势,drawDB 的架构选择具有前瞻性
风险与不足
- 测试覆盖几乎为零:1,129 次提交中仅 6 次测试相关,代码/注释比 230:1,对长期维护构成风险
- 单人维护风险:1ilit 贡献 72%,一旦停止维护项目可能停滞
- 大型 schema 性能瓶颈:100+ 表时性能下降明显,SVG 渲染和 IndexedDB 的性能天花板难以突破
- 无实时协作:社区呼声最高但实现复杂度大,需部署 drawdb-server
- AGPL-3.0 协议限制:强 copyleft 阻止了企业嵌入使用,限制了生态扩展
- ORM 导出缺失:社区需求高但未实现,限制了从设计到代码的全链路体验
行动建议
- 如果你要用它: 快速原型和中小型项目的数据库设计首选。大型项目或需要团队协作的场景考虑 dbdiagram.io + drawDB 组合
- 如果你要学它: 重点看
src/components/EditorHeader/ControlPanel.jsx(核心控制面板)、src/components/canvas.jsx(SVG 画布渲染)、src/utils/(SQL 生成/解析逻辑) - 如果你要 fork 它: ORM 导出(Prisma/SQLAlchemy/TypeORM)是最高价值方向,或添加 AI 辅助的 schema 设计建议
知识入口
| 资源 | 链接 |
|---|---|
| 在线 Demo | https://drawdb.app/ |
| DeepWiki | deepwiki.com/drawdb-io/drawdb |
| Zread.ai | 未收录 |
| 关联论文 | 无 |
| Discord | discord.gg/BrjZgNrmR6 |