PowerDesigner正向工程与逆向工程
一、正向工程
1、简介
使用PowerDesigner正向工程可以根据定义好的PDM文件产生一个数据库或生成指定的某种数据库的脚本。
2、转换
PDM中的模型如下:

- 选择Database -- Generate Database...菜单

- 参数设置
设置要生成的内容、格式以及输出位置等:

- 生成脚本
点击确定后即可生成对应的数据库脚本:
/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2020/11/01 20:12:02                          */
/*==============================================================*/
drop table if exists course;
drop table if exists student;
/*==============================================================*/
/* Table: course                                                */
/*==============================================================*/
create table course
(
   cno                  char(6) not null,
   name                 varchar(30),
   credit               smallint(6) default NULL,
   primary key (cno),
   unique key name (name)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*==============================================================*/
/* Table: student                                               */
/*==============================================================*/
create table student
(
   sno                  int(11) not null auto_increment,
   name                 varchar(30),
   sex                  char(2),
   dept                 varchar(20),
   primary key (sno),
   unique key name (name)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
二、逆向工程
1、简介
PowerDesigner的逆向工程可以将数据库脚本文件转换为PDM中的对象。
2、转换
- 打开逆向工程
点击 File -- Reverse Engineer -- Database... 菜单,打开逆向工程界面:

- 选择合适的数据库管理系统

- 选择脚本文件
脚本文件内容如下:
CREATE TABLE `student` (
	`sno` int(11) NOT NULL AUTO_INCREMENT,
	`name` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
	`sex` char(2) COLLATE utf8_unicode_ci DEFAULT NULL,
	`dept` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
	PRIMARY KEY (`sno`),
	UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `course` (
	`cno` char(6) COLLATE utf8_unicode_ci NOT NULL,
	`name` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
	`credit` smallint(6) DEFAULT NULL,
	PRIMARY KEY (`cno`),
	UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

- 生成模型
点击确定后即可生成对应的表模型:

Tips
- Code不随Name变化
点击Tools -- General Options...菜单:

去掉勾选Name to Code mirroring:
