一、正向工程

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