Why ERD

数据库模型是你的应用的核心,描述数据表、数据类型、实体关系和约束,是项目开发阶段最重要的沟通手段。清晰的ERD可以便于团队理解需求,掌握应用的全貌。

应用场景

初创项目

对于初创项目或者新的需求,能够正确的建立满足业务需求的数据模型是项目可以顺利迭代的关键因素。有了DrawERD这样的工具,可以让需求快速转换成可视化的ERD,在团队成员间达成共识,不再需要反复去核对「类目和产品到底是一对多还是多对多关系?」这种经常被忽略但又特别关键的信息。

遗留项目

对于遗留项目,一般业务已经非常稳定,但新人刚加入团队,面对几百张表的业务系统往往摸不到头脑。有了DrawERD,新人可以快速的了解项目数据关系,对应用有系统性的认识。
如果你的数据库已经有几百张表,打算从单体应用向微服务迁移,那么DrawERD的分组功能是一个最佳工具,通过对模块的分组模拟,你可以清晰的判断哪个实体放到哪个服务更合理。

Why not alternative?

上图是DrawERD的核心特性,相比市面上流行的建模工具,做了很多tradeoff,下面来说一下每个决策的理由:

  • SaaS vs desktop tool:相比单机工具,能够团队协同是DrawERD的一个目标,你可以生成url嵌入到你的项目管理工具,ERD的变更也会自动同步。
  • Auto layout vs Drawing on canvas manually:很多工具基于画布上的拖拽来编辑ERD,这种方式看起来很酷,但是实际使用起来,如果你的应用达到几十张表之后,就是灾难。DrawERD采用自动布局的方式,会根据你的实体和关系自动渲染出清新美观的SVG图,同时你可以选择mode和layout的组合进行渲染。
  • Database agnostic vs Database binding:一些工具需要依赖数据库连接去反向出数据结构,DrawERD选择使用静态解析的方式,你只需要从你现有数据库导出DDL文件上传,对于新建项目,只需要界面上创建实体和关系,不依赖任何外键和数据库的元信息。

Roadmaps

  • Export from ERD to DDL
  • Auto generate GraphQL API:根据模型定义自动生成GraphQL API endpoint,类似firebase
  • ERD public hub:提供常用应用类型或模块(如:CRM、电商、财务等)的ERD模板

Demo && Screenshots

simple


full


group

欢迎试用/反馈/吐槽/建议


update: 添加了download和share svg功能


添加了mysql的导入


添加了根据列名规则自动生成relation功能


Hooopo
65 声望2 粉丝

Rubyist. PGer. Data Nerd. Python 初心者. SQL Fan. Mongo Hater. Founder of [链接] & [链接]