【GitHub Copilot】自動從 SQL 生成 UML
將完整展示如何透過 GitHub Copilot 自動解析 SQL JOIN 語法,逐步生成專業的 UML 圖表流程。從環境建置到最終視覺化呈現,帶大家再次體驗 AI 輔助開發的高效工作流。
安裝套件
關於如何安裝套件的方式,請看 【GitHub Copilot】用 VS Code 解鎖 AI 寫扣超能力 - Mermaid。
準備SQL
以製造業 ERP 系統的 Shop Floor Management 模組為例,設計一個多表連接查詢。(專治表格設計架構都不清楚就要上場寫SQL的小苦手)
這張報表需求是要查詢 WIP 工單進度、成本核算,以及生產交易記錄。
- WIP 工單追蹤報表 – 顯示工單進度、物料流動情況。
- WIP 成本核算報表 – 彙總工單對應的會計科目。
- 生產交易記錄報表 – 查詢所有 WIP 交易記錄。
1 | SELECT |
Copilot Edits
使用套件 vscode-mermAId 來自動生成 UML,記得要將sql檔案加入提示詞中。
1 | @mermAId /uml 請根據所有的JOIN仔細畫出每個表的關聯的UML圖 |
點擊View Markdown Source,可以看到 Copilot 幫我們生成的 Markdown 語法囉。
生成UML
生成的 Markdown 語法的 UML 後,即可在支援 Markdown 的平台上呈現。
(每次看還是會想wow一下XD)
classDiagram class WIP_ENTITIES { WIP_ENTITY_ID WIP_ENTITY_NAME } class WIP_DISCRETE_JOBS { WIP_ENTITY_ID JOB_TYPE COMPLETION_SUBINVENTORY } class WIP_MOVE_TRANSACTIONS { WIP_ENTITY_ID TRANSACTION_DATE TRANSACTION_ID TRANSACTION_QUANTITY } class MTL_MATERIAL_TRANSACTIONS { TRANSACTION_ID INVENTORY_ITEM_ID } class MTL_SYSTEM_ITEMS_B { INVENTORY_ITEM_ID DESCRIPTION } class WSM_SPLIT_MERGE_TRANSACTIONS { TRANSACTION_ID } class WIP_TRANSACTION_ACCOUNTS { WIP_ENTITY_ID REFERENCE_ACCOUNT } class WIP_OPERATION_RESOURCES { WIP_ENTITY_ID RESOURCE_SEQ_NUM } WIP_ENTITIES --> WIP_DISCRETE_JOBS : WIP_ENTITY_ID WIP_ENTITIES --> WIP_MOVE_TRANSACTIONS : WIP_ENTITY_ID WIP_MOVE_TRANSACTIONS --> MTL_MATERIAL_TRANSACTIONS : TRANSACTION_ID MTL_MATERIAL_TRANSACTIONS --> MTL_SYSTEM_ITEMS_B : INVENTORY_ITEM_ID MTL_MATERIAL_TRANSACTIONS --> WSM_SPLIT_MERGE_TRANSACTIONS : TRANSACTION_ID WIP_ENTITIES --> WIP_TRANSACTION_ACCOUNTS : WIP_ENTITY_ID WIP_ENTITIES --> WIP_OPERATION_RESOURCES : WIP_ENTITY_ID
結論
透過 GitHub Copilot 自動化解析與 vscode-mermAId 插件,讓我們能將複雜的 SQL JOIN 關係快速轉換為視覺化 UML 圖表,特別適合在以下情境:
- 幫助成員快速理解系統架構。
- 分析資料庫結構變更的潛在影響。
- 強化技術文件的視覺化表達。