我们现在的需求是:希望当接到一个新的工程项目时,程序员只需要根据项目需求,设计出数据库的结构(表,表的字段,表间关系),之后只要按一个按键,就能立刻得到基于该数据库的所有分层架构代码文件.也就是说,我们希望能在不敲一行代码的情况下获取所有我们想要的代码!而这就是这2个软件能做到的事情,也是我们安装它们的目的.
好了,角色已经介绍完了,接着看看它们是如何演绎这场精彩的演出的吧:
首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student表和一个Major表.其表结构和关系如下所示.
![](https://i-blog.csdnimg.cn/blog_migrate/08379602cf9f287ceb2d8cf1c15bfaf0.jpeg)
看看怎样用PowerDesigner快速的创建出这个数据库吧.
1.现在开始使用PowerDesigner创建数据库,首先运行程序,进入主界面:
![](https://i-blog.csdnimg.cn/blog_migrate/22c21956ded1edaf9e50b87f7c4c477c.jpeg)
2.File—New Model—Physical Data Model—Physical Diagram—Model name 设置为test,DBMS属性设置为Microsoft SQL Server 2005:
![](https://i-blog.csdnimg.cn/blog_migrate/5cf892a426724819a1b058e70d68257e.jpeg)
3.首先用表格工具创建一个表格模板:
![](https://i-blog.csdnimg.cn/blog_migrate/3b6bdd028a0faca4cb7ef9546da34734.jpeg)
4.双击表格模板,设置属性,我们首先设置Major表:
![](https://i-blog.csdnimg.cn/blog_migrate/feb2fc7001fca4f34536698bad96fd32.jpeg)
5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/536bee68a5adff7318110c7999eba11a.jpeg)
6.因为MajorID字段我们要设置为自动增长,所以要设置它的高级属性,选择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:
![](https://i-blog.csdnimg.cn/blog_migrate/0fbd581908549f715b1ba8e01f53fe72.jpeg)
7.确定后我们再创建一个Student表,字段设置如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/ac7dc4d72350115b14627b4c952e4fc0.jpeg)
8.接着是为Student创建一个MajorID外键,使用PowerDesigner可以很轻松的完成这个工作,选择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表添加一个MajorID的外键:
![](https://i-blog.csdnimg.cn/blog_migrate/dcc27ae4f1363b562cfefa3e540b39ae.jpeg)
9.哈哈,现在测试表已经设置好了,接着设置一下我们要生成的数据库吧,这些表都将被创建到该数据库中,我们在设计面板空白处右键—Properties,在弹出的属性设置对话框设置如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d77baf8866612a47280e456ef2ad1846.jpeg)
10好了,在此我们对新数据库的设置已经完成,但是在SQL中还是空空如也啊,我们要怎么把这边设计好的结构移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可:
![](https://i-blog.csdnimg.cn/blog_migrate/9b47ba9b65870d2f63b20cbc81e8554b.jpeg)
11.到你的导出目录,就可以看见导出的数据库创建存储过程了,打开SQL,执行一下,你就会看到数据库被神奇的创建好了:
![](https://i-blog.csdnimg.cn/blog_migrate/bd1a7b6fdfbd9e438422818d7de4e6d8.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/b8dd3f3459fd056d5725d6af3ab21065.jpeg)
12.好了,数据库的准备工作做好了,下一篇我们就将使用该数据库结合CodeSmith自动批量生成代码啦~
上述实践中生成的源代码:
![](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
SQL.sql
/*
==============================================================
*/
/*
Database name: PD_test
*/
/*
DBMS name: Microsoft SQL Server 2005
*/
/*
Created on: 2010/6/13 星期日 17:27:17
*/
/*
==============================================================
*/
drop
database
PD_test
go
/*
==============================================================
*/
/*
Database: PD_test
*/
/*
==============================================================
*/
create
database
PD_test
go
use
PD_test
go
/*
==============================================================
*/
/*
Table: Major
*/
/*
==============================================================
*/
create
table
Major (
MajorID
int
identity
,
Name
nvarchar
(
20
)
not
null
,
Remark
nvarchar
(
Max
)
null
,
constraint
PK_MAJOR
primary
key
(MajorID)
)
go
/*
==============================================================
*/
/*
Table: Student
*/
/*
==============================================================
*/
create
table
Student (
StudentID
nvarchar
(
20
)
not
null
,
MajorID
int
null
,
Name
nvarchar
(
20
)
not
null
,
Sex
bit
not
null
,
Age
int
null
,
Remark
nvarchar
(
Max
)
null
,
constraint
PK_STUDENT
primary
key
(StudentID)
)
go
alter
table
Student
add
constraint
FK_STUDENT_REFERENCE_MAJOR
foreign
key
(MajorID)
references
Major (MajorID)
go