PowerDesigner快速创建数据库

利用PowerDesigner可以快速创建数据库表结构,把关注点放在表和模型的架构上而不是SQL语句上,由于用PowerDesigner创建数据库结构的文章网上不一而足,本文主要讲一些重要概念和主要步骤,来自https://www.hsli.top

创建过程

打开Powerdesigner,file->new>Physical Date创建物理模型

打开后右边Toolbox中用Table工具创建表,

mark

建好一个表之后,双击打开在Column中添加字段,Name处填写字段名,可以为中文,Code里面是字段代码,只能是英文,后面可以勾选P定为主键。

两张表之间如果有引用关系,可以用右侧Reference工具从子表拖往主表,即可创建连接关系,这些都很简单

一些概念

主键

一个表中用来区分唯一记录的字段,主键必须唯一而且非空,不然就没法区分2条记录了

外键

代表从属关系,外键可以为空,外键如果有值一定要在其引用表中能找到相应记录,他要么不贴标签(外键为空),一旦贴上标签一定要注明是谁的(有响应主表记录),当然外键也可以重复(一个主可以有多个从属)

生成SQL脚本

表结构创建完成之后可以生成SQL脚本来创建数据库,其实打开脚本来看的话,里面无非就是创建表,创建约束关系的SQL语句。

点击Database->Database Generation选择目录,起个名字生成SQL脚本。

如果引用关系很复杂的话,可能会导致生成过程报错,这是因为表名太长,导致一些键约束关系重名,可以右键选择错误,然后自动修复即可

创建完成后,可以将SQL脚本上传到数据库服务器用sqlplus执行@脚本名来执行里面的SQL语句创建数据库,也可以复制粘贴到PL\SQL中执行

细节

表名称自动添加到注释

新建表之后可以用中文为表命名,但是生成的SQL语句中当然是以英文的Code来命名数据表,这就导致了有注释意义的中文表名丢失,可以用如下脚本将表名添加到表注释里,在Powerdesigner用快捷键Ctrl+Shift+X可以打开脚本执行窗口,粘贴如下脚本代码即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Option   Explicit
ValidationMode = True
InteractiveMode = im_Batch

Dim mdl ' the current model

' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If

' This routine copy name into comment for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
col.comment= col.name
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next

' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
如果文章有用,请随意打赏