天天看點

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

忙,真忙

點贊再看,養成習慣,微信搜尋『程式通事』,關注就完事了!

點選檢視更多精彩的文章

這兩個星期真是巨忙,年前有個項目因為各種莫名原因,一直拖到這個月才開始真正測試。然後上周又接到新需求,馬不停蹄進入開發。

一邊開發着新需求,一邊改着舊項目的 Bug。再加上這個項目算是從别人那交給過來的,這部分新功能代碼并不是很熟,改 Bug 的時候又需要理清楚上下文邏輯,非常耗時間。

這不有一天狀态還不好,迷迷糊糊中改了一天 Bug,又寫了一天 Bug。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

自産自銷,問題有點大,後面幾天一直填自己的挖的坑,那叫一個酸爽。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

好了,不水了,不水了!

上面寫這麼多,本周沒啥時間寫技術文,那就寫點輕松的,分享一個日常比較實用的功能『自動生成資料庫 ER 圖』

自動生成 ER 圖

平常做技術方案設計的時候,如果有涉及到表結構的變更,就需要在文檔中說明,還得将表結構資訊寫到文檔中,類似如下:

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

如果是一個新項目,新增了多張表,手動将字段填到表格中,再畫個 ER 圖,很是費勁。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

這不最近剛好發現了 IDEA Database 插件,可以自動生成 ER 圖。

假設現有兩張表 activity 與 visitor,表結構如下:

CREATE TABLE activity

(

activity_id int NOT NULL,

title varchar(256) NOT NULL,

PRIMARY KEY (activity_id)

);

CREATE TABLE visitor

(

id int NOT NULL,

activity_id int NOT NULL,

PRIMARY KEY (id),

FOREIGN KEY (activity_id) REFERENCES activity(activity_id)

);

複制代碼

在 IDEA Database 彈框中選中相應的表,右鍵菜單選擇 Diagrams-Show Visualisation,就可以生成 ER 圖。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

ps: maven 包之間的層級關系也可以用這個功能展示

由于存在真實外鍵,IDEA Database 生成 ER 圖的時候将會自動生成外鍵的關系。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

但是真實生産環境,我們很少會建立這種真實實體外鍵關系,僅僅隻會在邏輯上生成一個虛拟的外鍵的關系。

具體原因可以參考阿裡巴巴『Java 開發手冊』

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

這種情況下,如果 IDEA 的版本低于 2019.3.2,那就别想了,直接用下節提到的工具。

IDEA 2019.3.2 新增了虛拟外鍵的功能,在 ER 圖增加生成虛拟外鍵的功能。

假設現有表結構如下:

CREATE TABLE activity

(

activity_id int NOT NULL,

visitor_id int NOT NULL,

PRIMARY KEY (activity_id)

);

CREATE TABLE visitor

(

id int NOT NULL,

first_name int NOT NULL,

PRIMARY KEY (id)

);

複制代碼

系統生成 ER 圖中将會生成虛拟外鍵關系。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

不過不要高興太早,IDEA 是根據一定規則生成虛拟外鍵關系的。

如果你的表中外鍵命名不符合規則,IDEA 是不會生成外鍵的。我們需要在 Setting | Editor | Code Completion 設定規則。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

說白了就是設定正規表達式,設定完成之後,可以點選

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

這個按鈕進行調試。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

上面功能比較适合表結構比較規範的情況,但是真實場景可能比較複雜,外鍵命名也不是規範。為了生成這個外鍵關系,還要配置正則規則,學習成本過很大,也很難啊。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

不過好在 IDEA 有另外一個功能,可以手動指定表之間的外鍵關系。

首先我們需要打開一個 IDEA Database console 視窗,在裡面輸入連表 sql,然後使用 Alt+Enter 快捷鍵選擇 Store table relation。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

這是 IDEA 會提醒你儲存這個外鍵關系到 xml 檔案中。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

生成 XML 檔案如下:

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

如果還需要生成外鍵關系,直接在這個配置檔案中增加即可。

dbschema

IDEA Database 生成虛拟外鍵,這樣看起來還是比較繁瑣的,下面介紹一款軟體『dbschema』,可以圖形化生成虛拟外鍵。

下載下傳位址:dbschema.com/

ps:收費軟體,免費 15 天

這款軟體專門簡化資料庫設計和管理,功能很強大,這裡僅僅介紹其虛拟外鍵這個小功能,其他功能感興趣同學可以自行研究一下。

首先我們建立一個 Layout,導入指定表。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

生成 ER 圖如下:

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

選擇相應的表,右鍵菜單選擇 Add Foreign Key

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

在建立視窗選擇相應的表以及字段。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

這裡需要注意,我們是要生成虛拟的外鍵關系,是以一定要勾選下 Virtual,不然會生成真實實體外鍵。

最後 ER 圖如下:

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

我們可以将這個 ER 圖以及表結構導出到 PDF 中。在 Layout 選擇 Export。

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...
java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

最後生成 PDF 如下圖所示:

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

Reference

www.jetbrains.com/help/idea/f…

blog.jetbrains.com/datagrip/20…

最後(點個贊,不過分吧!)

嘿嘿,本以為這周這麼忙,可能會斷更。幸好靠這個又水了一篇文章,哈哈哈!!!

好了,溜啦溜啦,還有一堆 Bug 等着要改~

我是樓下小黑哥,咱們下篇文章再見~

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

歡迎關注我的公衆号:程式通事,獲得日常幹貨推送。如果您對我的專題内容感興趣,也可以關注我的部落格:studyidea.cn

java類設計圖怎麼自動生成_設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!...

關于找一找教程網

本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。

本站提供了軟體程式設計、網站開發技術、伺服器運維、人工智能等等IT技術文章,希望廣大程式員努力學習,讓我們用科技改變世界。

[設計資料庫 ER 圖太麻煩?不妨試試這兩款工具,自動生成資料庫 ER 圖!!!]http://www.zyiz.net/tech/detail-131973.html