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
: