ErdDocs

貼上 SQL,產生 ER 圖與資料字典

ErdDocs 用你已經有的資料庫結構產生 ER 圖。貼上 SQL dump、Prisma 結構或框架的 migration,就會得到互動式的 ER 圖。同時還有一份可以直接列印的資料字典,列出每個資料表、欄位、型別與關聯。免註冊、免安裝。結構只在你的瀏覽器裡分析,不會離開你的電腦。

你的結構

不會上傳任何東西。結構只留在這個瀏覽器裡。重新開啟分頁時,最後貼上的結構會回來。清除網站資料後,它就會被刪除。

使用方式

把 SQL dump 變成 ER 圖與資料字典:

  1. 01匯出結構:PostgreSQL 用 pg_dump --schema-only,MySQL 用 mysqldump --no-data。
  2. 02貼到上方面板,或直接把 .sql 檔案拖進來。
  3. 03閱讀 ER 圖:滑鼠移到資料表上會標示它的關聯,點一下即可固定。
  4. 04切換到「資料字典」分頁,裡面整理了欄位、型別、預設值、索引與關聯,可以列印成 PDF。

為真實的 dump 而做

正式環境的結構不是一串整齊的 CREATE TABLE 陳述式,所以解析器是用真實的結構測試的:pagila、sakila、GitLab、Discourse、WordPress、PrestaShop。每種格式讀得多好,是用 89 份公開結構量出來的。

電子商務結構的實體關聯圖:customers、orders、products 與 order_items 資料表以鴉爪表示法的關聯線相連,由 SQL 產生電子商務結構的實體關聯圖:customers、orders、products 與 order_items 資料表以鴉爪表示法的關聯線相連,由 SQL 產生
上方商店的結構,和匯出功能畫出來的一模一樣。
  • 分區資料表仍是一張資料表。 一份 dump 裡 payment 有 55 個按月分區,畫出來仍只有一張 payment 卡片,而不是 56 張。
  • 補回缺少的外鍵。 Rails 和 Django 專案常常一個外鍵都不在資料庫裡宣告。但欄位名稱還是說明了誰指向誰,這些關聯會用虛線畫出。
  • 一個讀不懂的陳述式,不會拖垮整個檔案。 讀不懂的部分會跳過並回報,其餘的結構照樣畫出。
  • 大型結構絕不截斷。 你貼上的所有內容都會解析並排好,包括有數百個資料表的結構。

為什麼選 ErdDocs

  • 不只是圖,還有文件。 作業、稽核與交接真正要的,是和 ER 圖一起交出的資料字典。
  • 免註冊、免安裝。 看到結果前不必建立帳號,也不必在專案裡安裝任何東西。
  • 一次付清。 一個價格,而不是容易忘記取消的訂閱。
  • 結構不會離開你的電腦。 分析在瀏覽器裡完成,結構不會傳到伺服器。貼上正式環境的結構,也不必擔心資料庫的設計外洩。

格式之間的轉換

ErdDocs 讀取十種格式、輸出八種,全部都在上方面板裡完成。下面的頁面各處理一種轉換,開啟時已經放好範例(頁面為英文):

常見問題

資料字典是什麼?

它是資料庫的參考文件。每個資料表與欄位的資料型別、是否允許 NULL、預設值、索引與關聯,都集中寫在同一個地方。常用於課堂作業、專題、稽核和專案交接。ErdDocs 會用你貼上的結構產生它,可以直接列印。

可以直接用 SQL 程式碼畫 ER 圖嗎?

可以,這個工具就是為此而做的。貼上 PostgreSQL、MySQL、SQL Server 或 SQLite 的 CREATE TABLE 即可。整份 dump 也可以,包含 ALTER TABLE 與索引。也支援 Prisma、DBML、Mermaid、PlantUML、Django、SQLAlchemy、Sequelize、TypeORM 的 model 與 Laravel 的 migration。

我的結構會被上傳嗎?

不會。分析和繪圖完全在你的瀏覽器裡進行。你的 SQL 不會離開電腦,也沒有需要建立的帳號。ErdDocs 刻意不連線到運作中的資料庫,所以不必提供資料庫的帳號密碼。網站用不使用 Cookie 的分析信標計算瀏覽次數。它只知道你開了哪個頁面,看不到頁面裡的任何內容。

支援哪些資料庫和格式?

SQL 支援 PostgreSQL、MySQL、SQL Server 與 SQLite。可以是含有 ALTER TABLE ONLY ... ADD CONSTRAINT 陳述式的 pg_dump、mysqldump,或是在 SSMS 產生的指令碼,包括其中的 GO 批次與方括號名稱,也可以是 SQLite 的 .schema 指令輸出。另外九種輸入可以原樣讀取:Prisma 結構、DBML、Mermaid erDiagram、PlantUML、Django model、SQLAlchemy model、Sequelize model、TypeORM entity 與 Laravel migration。Prisma 的 @map 名稱、關聯欄位與隱含的多對多中介資料表,都會解析成資料庫實際建立的資料表。格式會依貼上的內容判斷,判斷結果也可以手動更改。

資料庫沒有外鍵,ER 圖會是空的嗎?

不會。Rails、Django、Laravel 的專案常常只在程式碼裡管理關聯。ErdDocs 也會讀命名慣例,所以 user_id 欄位會連到 users 資料表。這類推斷出的關聯用虛線畫出,和資料庫宣告的關聯區分開來。

和 dbdiagram、drawSQL、sqltoerdiagram 有什麼不同?

ErdDocs 只要一次付清。dbdiagram 和 drawSQL 的付費方案都只有訂閱制。ErdDocs 能讀 Prisma,也能讀 Django、SQLAlchemy、Sequelize 與 TypeORM 的 model,以及 Laravel 的 migration。這兩個工具都讀不了這些。它們也都不能匯出 Mermaid 或 PlantUML。在 drawSQL 裡,沒有帳號連圖片都匯出不了。DBML 在那裡也只能匯入,不能匯出。在 dbdiagram 裡,沒有外鍵的關聯要靠付費方案的 AI 助理來找。ErdDocs 則依欄位名稱免費找出來。sqltoerdiagram 沒有可列印的資料字典。它會把 dump 裡的每個分區畫成一張獨立的資料表,ErdDocs 則把分區併入父資料表。它不讀 Laravel 的 migration。遇到 Django 和 TypeORM,它會要你先從 model 產生 SQL。

要付費嗎?

看 ER 圖和匯出圖片都免費,也不需要帳號。25 個資料表以內的結構會完整繪出。更大的結構也會完整分析,但超過上限的資料表會鎖定顯示。一次付清 9 美元就能解鎖,其中也包含完整的資料字典。適用時,Paddle 會在結帳時加收稅金。

更多