V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hooopo
V2EX  ›  分享创造

写了个在线编辑 ERD 的工具

  •  1
     
  •   hooopo ·
    hooopo · 2020-04-12 09:38:30 +08:00 · 3022 次点击
    这是一个创建于 1686 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

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

    Demo && Screenshots

    simple
    full
    group

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

    第 1 条附言  ·  2020-04-13 07:21:44 +08:00
    目前服务器在新加坡,国内一些地区访问比较慢,考虑迁移到国内
    2 条回复    2020-04-14 10:53:36 +08:00
    hooopo
        1
    hooopo  
    OP
       2020-04-13 07:22:19 +08:00 via Android
    目前服务器在新加坡,国内一些地区访问比较慢,考虑迁移到国内
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:53 · PVG 02:53 · LAX 10:53 · JFK 13:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.