Web端ER可视化

背景介绍

因业务需要,团队决定对原ER图功能进行重构。重构来自两方面,一是功能上进行了细分,二是实现方式发生了变化。下面是重构前后对比:

重构前 重构后
功能方面 只有逻辑模型层面的ER图 包括概念模型、逻辑模型、物理模型3个层面的ER图
实现方式 单页面、antv/g6 微前端、React Flow、Elkjs

至于为什么前后采用的技术变化这么大,是因为我们采用了一个叫作ChartDB的开源仓库进行二开,本文主要围绕作者实现功能过程中遇到的问题进行展开。

ChartDB介绍

既然用到了ChartDB,这里有必要先对其进行简单介绍。

ChartDB一款基于 Web 的开源数据库可视化工具,旨在通过智能查询快速生成数据库架构图,并支持交互式编辑与 AI 驱动的数据库迁移功能。其设计理念是简化数据库结构的可视化与管理流程,适用于开发、文档生成、团队协作等场景。更多内容,读者可以参考其官网。

涉及到的核心前端技术包括下面几项:

  • Vite构建工具
  • React Flow
  • IndexedDB

在本项目中我们并没有用到ChartDB的全部能力,出于工时成本的考虑,我们只用了该项目的已有的可视化能力,同时结合实际需求做了一些改造。

实现过程

开发过程并不繁琐,但遇到了两个对我们来说算难点的地方,其余的就只是需要一定的时间了。

首先,我们得先熟悉ChartDB这个开源项目,理解其设计细节和实现细节,这样我们的改造才能更随心所欲,遗憾的是我们并没有那么多时间去了解全部细节。所以,在大致了解系统运行逻辑之后,我们就以功能性作为目标,开始了改造。

之后我们梳理了已有功能和目标功能的差异,概念模型功能用React Flow这款基于节点和连线的可交互图库自己实现,逻辑模型和物理模型图形部分用已有的,再根据需要扩展。

最后是功能放在什么地方,我们有两个选择,一是放在重构前的代码模块中,二是另开一个微前端。

如果选择第一种

你可能感兴趣的:(可视化,前端,可视化,ER图)