首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Workbench 可視化建模實戰:從 E-R 圖到正向工程生成數據庫的完整教程

     編輯:MySQL 綜合教學

MySQL Workbench 可視化建模實戰:從 E-R 圖到正向工程生成數據庫的完整教程

MySQL Workbench 是官方提供的可視化數據庫設計工具,支援物理模型建模、正向工程生成 DDL、逆向工程導入現有庫、模型同步對比等專業功能。本文以「訂單系統」為例,演示從創建 Schema、繪製 EER 圖、定義表結構與關係、導出 SQL 腳本、執行建庫的完整流程。

1. 創建 Schema(模式/數據庫)

  • 啟動 Workbench → 「Models」面板 → 點擊 + 創建新模型。
  • 雙擊默認 mydb 重命名為 order_schema,Collation 選 utf8mb4_general_ci。
  • 關閉 Schema 對話框,模型已加入 Catalog。

2. 創建 EER 圖並添加表

  • 雙擊 Add Diagram 創建圖表 order_er。
  • 工具欄選 Table 圖標 → 畫布點擊放置表 → 重複創建 3 表:orders、sales_orders、purchase_orders。
  • 拖拽調整佈局,保持清晰。

3. 定義表結構(雙擊表打開編輯器)

orders 表(父表)

  • Columns 標簽:
    • order_no BIGINT, PK, NN, AI (Auto Increment)
    • order_date DATETIME, NN
    • order_type CHAR(1), NN, Default 'S' (S=銷售, P=採購)
  • Indexes:主鍵自動創建。
  • Options:Engine=InnoDB, Collation=utf8mb4_general_ci, Comment='訂單主表'。

sales_orders 表(子表,1:1 識別關係)

  • Columns:order_no BIGINT, PK, NN (不勾選 AI,外鍵同時為主鍵)
  • 業務列:customer_name, shipping_address, total_amount DECIMAL(10,2)...

purchase_orders 表(子表,1:1 識別關係)

  • Columns:order_no BIGINT, PK, NN
  • 業務列:supplier_name, procurement_cost, expected_date DATE...

4. 建立關係(Relationships)

  • 工具欄選 1:1 Identifying Relationship (實線菱形,子表主鍵含父表主鍵)。
  • 點擊 sales_orders (子) → 再點擊 orders (父) → 彈出對話框確認外鍵列映射 (order_no → order_no) → 確定。
  • 同理建立 purchase_orders → orders 的 1:1 識別關係。
  • 圖上顯示實線菱形連接,子表主鍵圖標變為 FK+PK 組合。

5. 正向工程生成 DDL 腳本

  • 菜單 File → Export → Forward Engineer SQL CREATE Script。
  • 向導選項:
    • ✅ Generate DROP SCHEMA / CREATE SCHEMA
    • ✅ Generate DROP TABLE / CREATE TABLE
    • ✅ Generate INSERT statements for tables (可選)
    • ✅ Quote identifiers with backticks
    • ✅ Use IF NOT EXISTS
  • 保存為 order_schema.sql。

6. 執行腳本建庫驗證

  • Workbench 自身無直接執行能力,需外部客戶端:
    • 命令行:mysql -u root -p < order_schema.sql
    • Workbench 連接實例 → 「File → Run SQL Script」選擇文件執行。
  • 驗證:SHOW TABLES FROM order_schema;、DESC orders;、SHOW CREATE TABLE sales_orders; 確認外鍵約束存在。

7. 進階功能速覽

最佳實踐建議

  1. 命名規範:表名單數小寫下劃線 (sales_orders)、列名小寫下劃線、主鍵統一 id 或 表名_id。
  2. 所有表顯式指定 ENGINE=InnoDB、CHARSET=utf8mb4。
  3. 識別關係 (Identifying) 用於子表主鍵依賴父表主鍵;非識別關係 用於普通外鍵。
  4. .mwb 文件納入代碼倉庫,隨項目迭代同步更新。
  5. 大型模型分圖:按業務域拆分多個 EER Diagram,避免單圖過大卡頓。

Workbench 讓數據庫設計「所見即所得」,從圖到庫一氣呵成,是架構師與 DBA 的利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
功能入口用途
逆向工程Database → Reverse Engineer連接現有庫導入模型,生成 EER 圖
模型同步Database → Synchronize Model雙向對比模型與實例差異,生成 ALTER 腳本
模型文檔導出File → Export → Model Documentation生成 HTML/PDF 數據字典
版本控制集成File → Model → Version Control支援 Git/SVN 管理 .mwb 文件