一款价值感爆棚的开源可视化数据表设计工具——DrawDB

嗨,大家好,我是徐小夕

之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如:

最近研究低代码/零代码产品的时候, 发现一款非常有价值的可视化数据库设计工具——DrawDB.

3fd2e39c501d148981dfc0234b449ad9.gif

drawdb.gif

它可以通过可视化拖拽的方式, 轻松帮助我们设计数据库的各种业务表, 并且能一键导出 SQL 代码, 这种设计无疑给低代码/零代码产品画上了一个业务闭环的“小句号”.

接下来我就带大家一起学习研究一下这个开源项目, 文末会放 DrawDB 的开源地址, 方便大家参考.

一丢丢题外话

最近我也在研究AI工作流相关的技术和产品规划, 近期也会上线2款新的搭建产品, 欢迎大家的小板凳~

最近《趣谈前端》公众号的内容主要会为3个模块持续更新:

  • 可视化相关的精选开源项目分享

  • AI技术在Web产品中的应用

  • 自研产品独立开发者的经验&干货分享

感兴趣的朋友也可以关注我的公众号, 一起进步, 成长.

往期内容:

杀疯了!使用这个零代码平台,教育行业营销效率提升10倍

可视化图表, Web表格,工作流,拖拽搭建,文档编辑器, 这款开源项目通通帮你解决!

【开源力荐】低代码+工作流:重塑企业效率的数字化神器

正文

177224f86ac80e1d3e0ddf992a80677e.png

drawDB 是一款开源、简单、直观、强大且用户友好的在线数据库设计工具和 SQL 生成器,支持多种数据库。目前这款开源项目已经有 15.4kstar, 上千人使用fork.

20bc30dd886e675c64197887f4697e4f.png


我们只需点击几下即可实现如下常用功能:

  • 构建图表,

  • 导出SQL脚本,

  • 可以自定义编辑器等,

  • 无需登录免费使用

本地启动安装也很简单, 我们可以通过 npm 的方法一键安装使用:

git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run dev

接下来和大家分享一下它构建数据库表的方式.

1.选择一个数据库

ae60301e21f0c8895ed86013857fd2f9.png


它支持多种常用数据库, 比如 MySQL, POSTGRESQL. 这里我先选 MySQL带大家演示一下.

2. 可视化的创建数据表

3d5572a55522406aa2fe9cbe2a61fab2.png

这里我建了两张表, 分别是Dooring用户表页面表, 并建立了关联(PS: 数据表关联大家可以根据实际情况设计, 这里我只是简单举个例子).

我们看到数据库表的建立完全可以通过工作流的方式可视化的实现, 基本上不需要开发人员手动 coding 了.

3. 导出SQL代码

dfa00c540919907a4be7c97387328f57.png

设计好数据库和数据表之后, 我们可以一键将SQL导出, 还是非常高效的. 我觉得如果把这个流程和低代码绑定, 是不是可以直接在线动态创建业务数据库了, 当然这只是很小的一个场景, 更多的能力大家也可以慢慢在这个开源项目里摸索.

技术实现

5301717a956cd1dd5380d9ac8c2d2fff.png

接下来和大家分享一下这款开源项目用到的技术栈:

  1. @codemirror/lang-json:提供了用于在 CodeMirror 编辑器中处理 JSON 语言的支持

  2. @codemirror/lang-sql:为 CodeMirror 编辑器添加了对 SQL 语言的支持

  3. @douyinfe/semi-ui:一个 UI 组件库

  4. @lexical/react:与 Lexical 相关的 React 组件

  5. @uiw/codemirror-theme-github@uiw/codemirror-theme-vscode:为 CodeMirror 编辑器提供特定的主题,如 GitHub 或 VSCode 主题

  6. @uiw/react-codemirror:用于在 React 中使用 CodeMirror 编辑器的组件

  7. @vercel/analytics:Vercel 的分析功能相关

  8. axios:用于进行 HTTP 请求的库

  9. classnames:用于动态生成类名的工具库

  10. dexie:一个本地数据库库

  11. dexie-react-hooks:与 Dexie 数据库结合使用的 React 钩子库

  12. file-saver:用于保存文件的库

  13. framer-motion:用于实现动画效果的库

  14. html-to-image:将 HTML 内容转换为图像的工具

  15. i18nexti18next-browser-languagedetector:国际化相关的库,用于多语言支持

  16. jsonschema:用于处理 JSON 模式验证的库

  17. jspdf:用于生成 PDF 文件的库

  18. lexical:与文本编辑相关的库

  19. node-sql-parser:用于解析 SQL 语句的库

  20. react:前端库

  21. react-dom:React的渲染库

  22. react-hotkeys-hook:用于处理快捷键的 React 钩子库

  23. react-i18next:React 中的国际化库

  24. react-router-dom:React 路由库

  25. url:用于处理 URL 的库

  26. usehooks-ts:可能是一些自定义的 React 钩子库

技术交流

2d51e44984f4dc97e1a1244fc06a2139.png

最后

上面介绍的开源项目的github 地址: github.com/drawdb-io/drawdb

后期规划

后续我还会持续迭代 Nocode/WEP 项目, 让它成为最好用的可视化 + AI知识库,同时也会持续迭代和分享H5-Dooring零代码搭建平台,如果大家感兴趣,也随时欢迎留言区反馈交流~

d675ae97e9099c5c75d1524936623ec0.png

往期精彩

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值