ErdDocs

資料字典產生器

ErdDocs 用 SQL dump、Prisma 結構或框架的 model 產生資料字典。每個資料表、欄位、型別、預設值、索引與關聯,都整理在同一份參考文件裡。你可以透過瀏覽器的列印另存成 PDF,旁邊還有 ER 圖。免註冊、免安裝,結構在瀏覽器中分析。

你的結構

下方結構附有中文註解。切換到「資料字典」分頁,註解會出現在說明欄。

三個步驟,從資料庫到資料字典

  1. 01匯出結構:PostgreSQL 用 pg_dump --schema-only mydb > schema.sql,MySQL 用 mysqldump --no-data mydb > schema.sql,Prisma 則直接拿 schema.prisma 來用。
  2. 02貼到上方,或把檔案拖進面板。結構一邊讀取,資料字典就一邊出現。
  3. 03按下 另存為 PDF,瀏覽器的列印對話框就會產生文件。這一步同樣不會經過任何伺服器。

說明來自你的結構

資料庫本來就有放說明的地方,只是寫在那裡的說明很少被整理成文件。PostgreSQL 的 COMMENT ON TABLE 與 COMMENT ON COLUMN、MySQL 的 COMMENT '說明' 子句,以及 Prisma 的 /// 註解,都會放進「說明」欄。結構沒有註解時,這一欄就不會出現,文件不會滿是空格。

  • PostgreSQL: COMMENT ON TABLE orders IS '…' 與 COMMENT ON COLUMN orders.status IS '…'。pg_dump 會自動把它們和結構一起匯出。
  • MySQL: 在 CREATE TABLE 裡,寫在欄位與資料表上的行內 COMMENT '…'。mysqldump 會保留它們。
  • Prisma: 寫在 model 與欄位上方的 /// 文件註解,會成為資料字典裡的說明。

其餘一切都直接從 DDL 讀取:照原樣寫下的型別、是否允許 NULL、預設值、鍵、索引,以及收在父資料表底下的分區。有些 dump 完全沒有宣告外鍵(Rails 和 Django 很少宣告)。這時會從欄位命名還原關聯,並標明是推斷的,所以稽核人員隨時分得出哪些鍵是宣告的、哪些是推斷的。

誰會要這份文件

  • 稽核與法規遵循。 「請提供資料字典」是很常見的要求。ErdDocs 用貼上的結構 dump,幾分鐘就能交出來。對著運作中的資料庫手動整理,則要花上好幾天。
  • 交接給客戶。 接案團隊結案時會附上文件。ErdDocs 把這份交付物做成客戶可以列印、留存的文件。
  • 新人上手。 新進工程師只要讀一份文件,不必一個資料表一個資料表地查 information_schema。

資料字典是什麼

它是逐表描述資料庫的文件。每個欄位都寫明名稱與型別、是否允許 NULL、預設值、主鍵與外鍵、索引,以及它存放什麼的說明。課堂作業與專題、稽核,以及把系統交給客戶時,都會要求這份文件。

比 Excel 或 Word 範本更好

範本是手動填寫的,只要有人改了一個資料表,就和資料庫對不上。在這裡只要重新貼上 dump,資料字典就回到最新狀態。所以每次交付都能重新產生。

常見問題

產生的資料字典包含什麼?

ErdDocs 會描述每一個資料表。每個資料表列出所有欄位,附上照宣告原樣的資料型別、是否允許 NULL 與預設值。還會加上主鍵與外鍵(及其指向的欄位)、唯一約束、索引,以及每條關聯的兩個方向。結構裡的資料表與欄位註解會成為說明。分區資料表只列一次,分區名稱列在父資料表底下。

要怎麼為現有的資料庫產生資料字典?

先把結構匯出成 SQL(PostgreSQL 用 pg_dump --schema-only,MySQL 用 mysqldump --no-data)。貼到上方,再切換到「資料字典」檢視。用瀏覽器列印頁面就會得到 PDF。不必安裝任何東西,SQL 也不會離開你的電腦。

說明是怎麼進到資料字典裡的?

來自結構本身。PostgreSQL 的 COMMENT ON TABLE 與 COMMENT ON COLUMN 陳述式、MySQL 的行內 COMMENT '文字' 子句,以及 Prisma 的 /// 文件註解,都會放進「說明」欄。結構沒有任何註解時,ErdDocs 會整欄省略,而不是印出一欄空白。

免費嗎?

ER 圖最多 25 個資料表免費。資料字典會完整說明關聯最多的 3 個資料表。接下來的資料表以只有名稱的框顯示在原本的位置,其餘的則只列出數量。這樣你就能看到實際會拿到的文件。一次付清 9 美元,即可開啟完整資料字典與完整 ER 圖。沒有訂閱、不會續約,也沒有帳號。

我的結構會被上傳嗎?

不會。分析、ER 圖與資料字典都在瀏覽器裡產生,PDF 也是瀏覽器列印時自己產生的。結構不會傳到任何伺服器,因為根本沒有可以上傳的地方。

相關頁面