在线数据库关系图设计工具 dbdiagram.io

简介: 在线数据库关系图设计工具 dbdiagram.io

前段时间,笔者在设计某个系统模块的时候,需要增加十几张表。

为了简单快速地把这十几张表设计并定义出来,我找到了一个可以在线设计数据库关系图(database relationship diagram)且可以导出DDL SQL的工具——dbdiagram.io

dbdiagram.ioholistics.io这款商业产品的社区版。

dbdiagram.io使用DSL语言,可以简单快速地创建数据库关系图。

这款工具的操作界面也非常简约并具有设计感:

  • 有时候我们需要在关系型数据库中设计一些表,以便实现我们的业务功能。
  • 或者我们对某个系统的表结构不是很熟悉,希望画个图表示一下这些实体之间的关系。
  • 又或者我们希望把设计好的数据库关系图直接转化为DDL SQL。
  • 而且我们不想使用复杂的工具,付出高昂的学习成本。
  • 也不想用太重的工具,占用内存。

这个时候这个在线的数据库关系图工具就排上用场了。

语法

下面介绍一下它的语法。

定义表的语法如下:

Table users {
  id integer [pk]
  username varchar [not null, unique]
  full_name type [not null]
  .....
}

如果表名太长还支持取别名:

Table longtablename as t_alias {
  .....
}

定义外键支持如下三种关系:

< : One-to-many
> : Many-to-one
- : One-to-one

并且提供了3种定义外键的方式:

Ref name-optional {
  table1.field1 < table2.field2
}

Ref name-optional: t1.f1 < t2.f2

Table posts {
  id integer [pk, ref: < comments.post_id]
  user_id integer [ref: > users.id]
}

例子

下面以电商系统常用的几张表作为例子演示一下它的用法。

当你登录自己的Google账号以后,可以把你设计好的图形保存到线上,这样就可以通过一个唯一的链接访问 : https://dbdiagram.io/d/5cc9103ef7c5bb70c72fd15c

这里是DSL:

Table orders {
  id int [primary key]
  user_id int [not null, unique]
  status varchar
  created_at varchar
}

Table order_items {
  order_id int
  product_id int
  quantity int
}

Table products {
  id int [primary key]
  name varchar
  merchant_id int [not null]
  price int
  status varchar
  created_at varchar
  category_id int
}

Table users {
  id int [primary key]
  full_name varchar
  email varchar [unique]
  gender varchar
  date_of_birth varchar
  created_at varchar
  country_code int
}

Table merchants {
  id int [primary key]
  admin_id int
  merchant_name varchar
  country_code int
  created_at varchar

}

Table categories {
  id int [primary key]
  cat_name varchar
  parent_id int
}

Table countries {
  code int [primary key]
  name varchar
  continent_name varchar
}

Ref {
  orders.user_id > users.id
}
Ref {
  order_items.order_id > orders.id
}

Ref {
  order_items.product_id > products.id
}

Ref {
  products.merchant_id > merchants.id
}

Ref {
  products.category_id > categories.id
}

Ref {
  categories.parent_id > categories.id
}

Ref {
  users.country_code > countries.code
}

Ref {
  merchants.admin_id > users.id
}

Ref {
  merchants.country_code > countries.code
}

这里是导出的数据库关系图PDF:

总结

最后总结一下dbdiagram.io的特点:

  • DSL : 使用简单的DSL语言即可定义数据库关系图
  • Google Account :使用Google账号可以在线保存设计好的图
  • Online :不需要安装软件,方便快捷,而且支持拖动和调节
  • Import/Export : 支持导出DDL SQL和PDF,支持导入外部数据
  • Share : 可以生成一个分享链接,方便团队成员协作
目录
相关文章
|
3月前
|
SQL 存储 关系型数据库
IDEA中居然有碾压Navicat的数据库管理工具
【8月更文挑战第12天】IDEA中居然有碾压Navicat的数据库管理工具
190 3
IDEA中居然有碾压Navicat的数据库管理工具
|
18天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
58 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
Oracle 关系型数据库 Java
数据库的 IO 到底有多慢?
本文通过对比Java程序从Oracle、MySQL数据库读取数据与读取文本文件的性能,揭示数据库IO速度远低于文件读取的现状。在相同硬件环境下,读取3000万行记录,Oracle耗时280秒,MySQL耗时380秒,而文本文件仅需42秒。此外,通过SPL实现并行处理,可显著提升读取速度,尤其是在处理大规模数据时。实验还探讨了数据库接口慢的问题及其对性能的影响,提出在追求高性能计算时应尽量避免从数据库读取数据的建议。
|
1月前
|
SQL 数据可视化 关系型数据库
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
105 1
|
30天前
|
Rust 关系型数据库 Linux
Rainfrog: 轻量级数据库管理工具
【10月更文挑战第3天】
|
3月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
503 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
3月前
|
存储 前端开发 关系型数据库
秀啊,用Python快速开发在线数据库更新修改工具
秀啊,用Python快速开发在线数据库更新修改工具
|
3月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
|
3月前
|
SQL NoSQL 关系型数据库
推荐3款免费且实用的数据库管理工具
推荐3款免费且实用的数据库管理工具
182 2
|
3月前
|
存储 SQL NoSQL
数据转型秘诀:10强数据库管理工具
本文概览了十款特色鲜明的数据库系统,包括低代码平台Zoho Creator,以及PostgreSQL、MySQL等关系型数据库,还有MongoDB这样的NoSQL文档数据库。这些系统覆盖了从企业数据管理到Web应用开发的不同需求场景,如Zoho Creator允许非技术人员也能构建定制化的数据库应用;PostgreSQL以其稳定性和强大功能闻名;而MongoDB则擅长处理大量非结构化数据。每款数据库都针对特定的应用场景提供了独特的解决方案。
61 4