首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

使用 ERWin 進行 MySQL 物理模型設計:ODBC 逆向工程與腳本微調實戰

     編輯:MySQL 資料庫相關知識

工具鏈準備

  1. 安裝 MySQL Connector/ODBC(官網下載對應版本)
  2. ODBC 資料來源管理員 (odbcad32) 建立 User DSN 指向目標 MySQL 實例
  3. ERWin 啟動,開啟既有 Logical Model

核心流程

  1. Forward Engineer → ODBC 2.0:選擇剛建立的 DSN,生成 Physical Model
  2. 關鍵微調:ODBC 產生的 DDL 往往不完全相容 MySQL 語法,需透過 ERWin Model-Level / Table-Level Scripts 修正

常見不相容點與修正腳本

問題ERWin 產出MySQL 需求修正腳本範例
時間戳型別DATEDATETIME / TIMESTAMPALTER TABLE %TableName MODIFY CREATE_ON DATETIME;
自增主鍵INTINT AUTO_INCREMENTALTER TABLE %TableName MODIFY ID INT AUTO_INCREMENT PRIMARY KEY;
無符號整數INTINT UNSIGNEDALTER TABLE %TableName MODIFY QTY INT UNSIGNED;
字符集/校對預設utf8mb4_unicode_ciALTER TABLE %TableName CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
儲存引擎無指定InnoDBALTER TABLE %TableName ENGINE=InnoDB;

ERWin 巨集變數速查

  • %TableName%:當前表名
  • %ColumnName%:當前欄位名
  • %DataType%:當前資料型別
  • %SchemaName%:Schema/Database 名

腳本類型與執行順序

類型範圍執行時機用途
Model-Level Pre整個 Physical Model建表前建立資料庫、設定全域變數
Model-Level Post整個 Physical Model建表後建立跨表 FK、權限授予
Table-Level Pre單表建表前建立臨時表、分區前置操作
Table-Level Post單表建表後修正型別、加索引、建立觸發器

實戰範例:Table-Level Post Script 修正 DATETIME

-- ERWin Table-Level Post Script
ALTER TABLE %TableName MODIFY CREATE_ON DATETIME;
ALTER TABLE %TableName MODIFY UPDATE_ON TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

Forward Engineer 設定要點

  • 勾選 Generate Pre/Post Scripts
  • 選擇 MySQL 5.x 目標資料庫版本
  • 啟用 Generate IF NOT EXISTS 避免重複執行報錯
  • 輸出單一 .sql 檔,便於版控與 Code Review

結語

ERWin + ODBC 逆向/正向工程是異構建模的標準路徑,但 ODBC 通用型別無法涵蓋 MySQL 專屬特性。掌握 Table-Level Post Script 微調 DATETIME、AUTO_INCREMENT、UNSIGNED、CHARSET、ENGINE 五大項,即能產出生產級 MySQL DDL,落地「建模即交付」流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved