在日常进行数据库设计时,许多人习惯依赖UI界面操作,这种方式往往需要频繁在多个输入框之间来回切换,操作繁琐且效率不高。尽管市面上有一些基于DSL方言的建表工具可以帮助提高效率,但它们的语法有时并不够直观,使用起来依然不够流畅。为了寻找更高效的解决方案,我尝试了一些工具,以下是其中的一些:
dbdiagram.io:数据库关系图设计工具
QuickDBD ():快速数据库设计
FreeERDiagramTool (ERDLab):免费的ER图设计工具
不过在实际使用这些工具时,发现一些工具的语法仍然不够灵活,操作感受上也稍显别扭。决定自己动手做一个工具,以便在设计数据库时更加高效和便捷。
工具特点:
采用DSL方言,语法简洁,易于上手,降低学习成本;
提供自动提示,减少了关键字输入的负担;
完全无需鼠标操作,专注于表结构的设计;
支持生成Mysql、SQLite3、Postgres、MSSQL等数据库的建表语句;
使用浏览器的本地localStorage功能,确保数据实时保存;
实时生成ER图,帮助用户更直观地查看表与表之间的关系(该功能正在开发中)。
技术实现:
前端采用Vue3框架和Codemirror编辑器,提供流畅的代码编辑体验;
使用Lezer解析DSL方言,确保语法分析准确;
利用Knex.js生成建表SQL语句,确保SQL的正确性和兼容性。
DSL示例:
虽然这种DSL的语法与传统的SQL建表语句看起来差别不大,主要是省略了部分SQL关键字,并结合自动提示功能,减少了输入的复杂度。相较于传统方式,这种方式不再需要频繁切换输入框,从而让设计者能够更加专注于表结构的规划和设计。
使用效果:
目前该工具的功能还比较基础,但已经能完成简单的数据库设计需求。如果你有兴趣,可以通过以下链接进行体验:litgh.github.io/
这个工具的初衷是减少设计数据库时的繁琐步骤,让开发者能够专注于表结构本身,而不是在复杂的界面和输入框中来回切换。随着功能逐步完善,它将成为数据库设计中的一款实用工具。