ER 圖工具
ErdDocs 不要你手畫 ER 圖,而是幫你產生。貼上 SQL dump、Prisma 結構、migration 或 ORM model,幾秒內就會出現實體、屬性,以及用鴉爪表示法畫出的關聯。免費、免帳號、免安裝,結構也不會上傳到任何地方。
依左側 SQL 產生的電影目錄 ER 圖。把你自己的結構貼上去覆蓋即可。
這是繪圖工具嗎?
不是。ErdDocs 從你貼上的結構推導出圖,所以沒有圖形面板、沒有畫線工具,也沒有從空白開始的畫布。在這裡,ER 圖是讀取結構的結果,不是你親手組裝的東西。你貼上原本就描述資料庫的文字,方框、欄位、鍵與基數都從中推導出來。你仍然可以拖曳資料表調整位置,排好的版面也會保存在分享連結裡。但圖上顯示的一切都來自你的結構,不必再手動輸入一次。
這個搜尋結果裡的其他工具,幾乎都是反過來的做法。下一節要談 ErdDocs 交給繪圖工具處理的唯一情況:還不存在的資料庫。
手畫,還是產生?
關鍵只有一個:結構是否已經存在。
- 結構還不存在:那就畫。 ErdDocs 讀的是結構,所以這是它唯一不處理的情況。資料庫還不存在時,手畫是對的。模型是在白板或繪圖工具上討論實體時決定的。訂單是擁有自己的地址,還是指向一筆地址?這個關聯真的是多對多嗎?畫布或白板正適合這種討論。等討論的結果寫成 migration 或 CREATE TABLE,之後就交給 ErdDocs 讀取。
- 結構已經存在:那就產生。 資料表一旦真的建立,就已經被精確地描述在
CREATE TABLE陳述式、Prisma 結構、migration 檔案與 ORM model 類別裡。把現有的結構再手畫一次,等於抄寫一份你已經有的描述。花了你的時間,得到的只是一份比原本更不可靠的副本。
在 ER 圖工具裡,ErdDocs 是為已經存在的資料庫而做的。這個類別的其他工具,則是為了從零開始畫草圖。大多數搜尋 ERD 工具的人手上已經有結構。他們還是會選繪圖工具,因為搜尋結果給的就是這些。
ErdDocs 做得到、其他 ER 圖工具做不到的事
下面每個工具都能畫 ER 圖。這張表比較的是 ErdDocs 做得到的事。
| 功能 | ErdDocs | dbdiagram | Eraser | diagrams.net | Lucidchart | SmartDraw | Miro | Figma FigJam |
|---|---|---|---|---|---|---|---|---|
| 自動從 SQL 產生圖,包括資料表和所有關聯 | ✓ 有 | ✓ 有 | 部分:把 SQL 當成 AI 提示詞 | 部分:只有資料表,關聯線要手畫 | 部分:資料表要手動拖到畫布上 | 部分:用 CSV,不是 SQL | 部分:透過 AI 或 Mermaid 程式碼 | 部分:只能用 Mermaid 程式碼 |
| 讀取 Prisma 與 ORM model | ✓ 有 | × 無 | 部分:把程式碼當成 AI 提示詞 | × 無 | × 無 | × 無 | × 無 | × 無 |
| 免費找出沒有外鍵的關聯 | ✓ 有 | 部分:要用付費方案的 AI | 未說明 | × 無 | × 無 | × 無 | 部分:由 AI 建議關聯 | 未說明 |
| 結構不會傳到廠商的伺服器 | ✓ 有 | 部分:只在連結產生器裡 | × 無 | ✓ 有 | × 無 | × 無 | × 無 | × 無 |
| 不需帳號就能匯出圖片 | ✓ 有 | 未說明 | × 無 | ✓ 有 | × 無 | × 無 | 部分:只限基本白板 | × 無 |
| 匯出 Mermaid、DBML 與 PlantUML | ✓ 有 | 部分:只有 DBML | × 無 | × 無 | 部分:Mermaid 只能透過 MCP | × 無 | 部分:只有 Mermaid | × 無 |
| 可列印的資料字典 | ✓ 有 | 部分:網頁文件,沒有 PDF | 未說明 | × 無 | × 無 | × 無 | 未說明 | × 無 |
| 不必訂閱也能用 | ✓ 有 | × 無 | × 無 | ✓ 有 | 部分:免費方案不能匯入 ERD | × 無 | × 無 | × 無 |
這張表依各廠商自己的頁面整理,資料截至 2026 年 11 月。「未說明」表示廠商沒有提到這一點。產品名稱屬於各自的擁有者。
最接近 ErdDocs 的是 dbdiagram,它也是從 SQL 產生圖。不過它不讀 Prisma 和 ORM model,也不能匯出 Mermaid 或 PlantUML。沒有外鍵的關聯,只能靠付費方案的 AI 來找。它的付費方案只有訂閱制,ErdDocs 則是一次付清。
Eraser 不會解析 SQL,而是把它當成提示詞交給 AI 模型,所以結構會離開你的電腦。匯出需要帳號,支援的格式裡也沒有 Mermaid、DBML 和 PlantUML。
diagrams.net 會把貼上的 SQL 變成資料表,但資料表之間的關聯要自己手畫。它不讀 ORM model,也不會產生資料字典。
Lucidchart 需要帳號,還要對運作中的資料庫執行一段查詢。匯入的資料表之後要手動擺到畫布上,關聯也只來自已宣告的外鍵。
SmartDraw 用 CSV 產生 ERD,這份 CSV 要用查詢從運作中的資料庫匯出。它不讀 SQL dump 或 ORM model,而且只能在線上使用。
Miro 和 Figma FigJam 產生 ERD 靠的是 AI 或 Mermaid 程式碼,而不是 SQL。結構存放在它們的雲端,匯出也要透過帳號。
為什麼手畫的 ERD 會過時,產生的不會
手畫的圖是一張快照,和資料庫之間沒有任何連結。下一次 migration 新增了欄位、改了資料表名稱,或刪掉一個外鍵。圖還是顯示舊的樣子,直到有人想起它的存在、找到檔案、有編輯軟體的授權,還願意花時間。通常它只在畫好的那一週是對的,之後再也沒人改。很多程式庫裡都放著一張和旁邊結構互相矛盾的圖。
產生的圖沒有需要保持同步的另一個版本。它只是結構文字的一種呈現,所以用最新的 dump 重新產生只要幾秒,結果因為做法本身就一定正確。你可以每次發布都重新產生。同一次貼上,就能匯出放進 README 的 Mermaid、放進文件網站的 SVG,或是交接用的完整資料字典。
可以貼上什麼
十種格式,會自動判斷。檔案照原樣貼上,工具會自己認出那是什麼。
- SQL: PostgreSQL、MySQL、SQL Server 與 SQLite 的指令碼,照伺服器與工具寫出來的樣子讀取(pg_dump、mysqldump、SSMS 的「產生指令碼」)。反引號、
AUTO_INCREMENT、SSMS 的GO批次,以及之後才用ALTER TABLE宣告的鍵,全都讀得到。dump 裡有什麼,請看 MySQL 頁面。 - 結構語言: Prisma、DBML、Mermaid 與 PlantUML。它們本來就是以文字寫成的圖,只需要畫出來。
- ORM model: Django、SQLAlchemy、Sequelize 與 TypeORM 的類別,以及 Laravel 的 migration。這些結構從來沒有圖,因為資料庫是在應用程式碼裡定義的。
結果也能匯出成 Mermaid、DBML、PlantUML 或 SQL,直接貼進 README 或專案文件。格式頁面列出每一種格式讀取什麼、刻意略過什麼。
產生的圖會顯示什麼?
每個資料表一個方框,裡面列出欄位與實際的型別,鍵會加上標記,每條關聯的兩端都用鴉爪表示法標出。所以圖會明確寫出基數,而不是讓人去猜。在上面的電影目錄裡,film_credits 是帶有自己欄位的中介資料表。多對多關聯真正進到資料庫時,就是這個樣子。
許多 Rails、Django、Laravel 專案不在資料庫裡宣告外鍵。結構沒有宣告的關聯,會從欄位名稱還原(film_id 指向 films)。這些關聯以虛線畫出,所以推斷出的線不會被誤認為資料庫強制執行的關聯。這一步在接手的正式環境資料庫上最重要,資料庫圖工具頁面會說明原因。
常見問題
這是拖曳方框來畫的 ERD 工具嗎?
不是。ErdDocs 從你貼上的結構產生圖,所以沒有圖形面板,也沒有畫線工具,這是刻意的設計。你仍然可以拖曳資料表調整版面,排好的位置也會保存在分享連結裡。但沒有任何東西是手畫的。每個方框、每條線都來自 SQL。
應該手畫 ERD,而不是用產生的嗎?
資料表真的建立之後,ErdDocs 就會產生 ERD。大多數人所處的就是這種情況,因為通常在有人要一張圖之前,結構就已經存在了。它唯一略過的,是還沒建立的資料庫。在任何人寫 migration 之前,資料模型是靠在畫布上畫實體、反覆討論來決定的,這部分交給通用的繪圖工具。等草圖變成 migration 或 CREATE TABLE,就貼到這裡,圖會直接從結構本身產生。
可以貼上什麼?
十種格式:PostgreSQL、MySQL、SQL Server 與 SQLite 的 SQL、Prisma 結構、DBML、Mermaid、PlantUML、Django model、SQLAlchemy model、Sequelize model、TypeORM entity 與 Laravel migration。格式會自動判斷。檔案照原樣貼上即可,不必先整理,也不必先匯出。
需要帳號、安裝或資料庫連線嗎?
三樣都不需要。解析器是在你瀏覽器裡執行的 JavaScript,所以沒有要連線的伺服器,也沒有要上傳的結構。資料表與欄位名稱不會離開你的電腦。打開頁面、貼上,圖就出現了。
適合用在資料庫課的作業或專題嗎?
適合。用 SQL 寫好資料表並貼上,就會得到含基數的 ER 圖,還有可列印的資料字典。如果老師要求先有概念模型再寫資料表,就要先做設計。ErdDocs 畫的是已經寫好的東西。
結構改了怎麼辦?
貼上新的 dump,幾秒內就會重新產生。手畫的 ERD 要靠記得它存在的人去修改,所以從下一次 migration 起就開始和資料庫脫節。產生的 ER 圖每次都來自結構本身,所以不可能脫節。
免費嗎?
25 個資料表以內的結構免帳號就能完整繪出,匯出 PNG、SVG、Mermaid、DBML、PlantUML 和 SQL 也都免費。更大的結構也會完整分析,超過上限的資料表會鎖定顯示。一次付清 9 美元,即可解除上限並開啟資料字典。
相關頁面
- 什麼是 ER 圖:基本概念,以及怎麼讀一張 ER 圖。
- 資料庫圖工具:同一個工具,寫給看的是資料庫而不是模型的人。
- ER 圖符號:各種圖形與線端代表什麼。
- 結構圖:結構圖和 ER 圖有什麼不同。
- ER 圖範例:各種領域的完整範例,每個都附上背後的 SQL。
- ERDPlus 替代方案:ErdDocs 做得到、繪圖工具做不到的事。
- SQL 轉 ER 圖:工具本身,支援它讀得懂的每一種格式。