在線數(shù)據(jù)庫(kù)關(guān)系圖設(shè)計(jì)工具 dbdiagram.io

前段時(shí)間,筆者在設(shè)計(jì)某個(gè)系統(tǒng)模塊的時(shí)候视译,需要增加十幾張表。

為了簡(jiǎn)單快速地把這十幾張表設(shè)計(jì)并定義出來(lái)归敬,我找到了一個(gè)可以在線設(shè)計(jì)數(shù)據(jù)庫(kù)關(guān)系圖(database relationship diagram)且可以導(dǎo)出DDL SQL的工具——dbdiagram.io酷含。

dbdiagram.ioholistics.io這款商業(yè)產(chǎn)品的社區(qū)版。

dbdiagram.io使用DSL語(yǔ)言汪茧,可以簡(jiǎn)單快速地創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖椅亚。

這款工具的操作界面也非常簡(jiǎn)約并具有設(shè)計(jì)感:

  • 有時(shí)候我們需要在關(guān)系型數(shù)據(jù)庫(kù)中設(shè)計(jì)一些表,以便實(shí)現(xiàn)我們的業(yè)務(wù)功能陆爽。

  • 或者我們對(duì)某個(gè)系統(tǒng)的表結(jié)構(gòu)不是很熟悉什往,希望畫(huà)個(gè)圖表示一下這些實(shí)體之間的關(guān)系。

  • 又或者我們希望把設(shè)計(jì)好的數(shù)據(jù)庫(kù)關(guān)系圖直接轉(zhuǎn)化為DDL SQL慌闭。

  • 而且我們不想使用復(fù)雜的工具别威,付出高昂的學(xué)習(xí)成本。

  • 也不想用太重的工具驴剔,占用內(nèi)存省古。

這個(gè)時(shí)候這個(gè)在線的數(shù)據(jù)庫(kù)關(guān)系圖工具就排上用場(chǎng)了。

語(yǔ)法

下面介紹一下它的語(yǔ)法丧失。

定義表的語(yǔ)法如下:

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

如果表名太長(zhǎng)還支持取別名:

Table longtablename as t_alias {
  .....
}

定義外鍵支持如下三種關(guān)系:

< : 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]
}

例子

下面以電商系統(tǒng)常用的幾張表作為例子演示一下它的用法豺妓。

當(dāng)你登錄自己的Google賬號(hào)以后,可以把你設(shè)計(jì)好的圖形保存到線上布讹,這樣就可以通過(guò)一個(gè)唯一的鏈接訪問(wèn) : 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
}

這里是導(dǎo)出的數(shù)據(jù)庫(kù)關(guān)系圖PDF:

總結(jié)

最后總結(jié)一下dbdiagram.io的特點(diǎn):

  • DSL : 使用簡(jiǎn)單的DSL語(yǔ)言即可定義數(shù)據(jù)庫(kù)關(guān)系圖
  • Google Account :使用Google賬號(hào)可以在線保存設(shè)計(jì)好的圖
  • Online :不需要安裝軟件,方便快捷描验,而且支持拖動(dòng)和調(diào)節(jié)
  • Import/Export : 支持導(dǎo)出DDL SQL和PDF白嘁,支持導(dǎo)入外部數(shù)據(jù)
  • Share : 可以生成一個(gè)分享鏈接,方便團(tuán)隊(duì)成員協(xié)作
Wechat-westcall
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末膘流,一起剝皮案震驚了整個(gè)濱河市絮缅,隨后出現(xiàn)的幾起案子鲁沥,更是在濱河造成了極大的恐慌,老刑警劉巖耕魄,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件画恰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吸奴,警方通過(guò)查閱死者的電腦和手機(jī)允扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奄抽,“玉大人蔼两,你說(shuō)我怎么就攤上這事〕讯龋” “怎么了额划?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵柬讨,是天一觀的道長(zhǎng)效拭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)雪位,這世上最難降的妖魔是什么馆匿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任抑胎,我火速辦了婚禮,結(jié)果婚禮上渐北,老公的妹妹穿的比我還像新娘阿逃。我一直安慰自己,他們只是感情好赃蛛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布恃锉。 她就那樣靜靜地躺著,像睡著了一般呕臂。 火紅的嫁衣襯著肌膚如雪破托。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天歧蒋,我揣著相機(jī)與錄音土砂,去河邊找鬼。 笑死谜洽,一個(gè)胖子當(dāng)著我的面吹牛萝映,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阐虚,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锌俱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了敌呈?” 一聲冷哼從身側(cè)響起贸宏,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磕洪,沒(méi)想到半個(gè)月后吭练,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡析显,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年鲫咽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谷异。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡分尸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歹嘹,到底是詐尸還是另有隱情箩绍,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布尺上,位于F島的核電站材蛛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏怎抛。R本人自食惡果不足惜卑吭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望马绝。 院中可真熱鬧豆赏,春花似錦、人聲如沸富稻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)唉窃。三九已至耙饰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纹份,已是汗流浹背苟跪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔓涧,地道東北人件已。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像元暴,于是被迫代替她去往敵國(guó)和親篷扩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容