powerdesigner问题

1.Table code maximum length或者
Column code maximum length这是因为DBMS设置里面的表的code或者字段的code最大值设置过小,而自己设计的表字段code和表code又很长。

点击Database -> Edit Current DBMS
在Script->Objects->
下面:
Table-Maxlen和
Column-Maxlen两个值改大。

2.为生成的sql语句设置字符集
Database -> Edit Current DBMS->Script->Object->Table->Options

powerdesigner问题_第1张图片



改成

type = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
auto_increment = %d
avg_row_length = %d
checksum = %d : list = 0 | 1, default = 0
min_rows = %d
max_rows = %d
pack_keys = %d : list = 0 | 1 | default, default = default
password = %s
delay_key_write = %d : list = 0 | 1, default = 0
row_format = %s : list = default | dynamic | static | compressed, default = default
raid_type = %d : list = 1 | striped | raid0
raid_chunks = %d
raid_chunksize = %d
union = %s
insert_method = %s: list = no | first | last, default = no
data directory = %s
index directory = %s
DEFAULT CHARACTER SET = %s : list = utf8 | gbk, default = utf8
COLLATE = %s : list = utf8_bin | utf8_general_ci | gbk_bin | gbk_chinese_ci, default = utf8_general_ci

双击我们设置的某张表
在Physical Options选项卡
把你要加入的Options加入到右边

如果要一次性为所有表都启用Physical Options选项,

Database -> Default Physical Options,

powerdesigner问题_第2张图片

3.Incomplete join Reference FK_xxxx
要设置权限的类型,默认是只要是主键,就给他们建立关系,改成NONE
然后把不需要的关联字段删了

powerdesigner问题_第3张图片


4.想删除外键,但是不删除列的话
菜单
Tools->Model Options->Model Settings->Reference

Auto-migrate columns前面的勾去掉


5.设置所有主键为自增长
Tools->Execute Commands->Edit/Run Script
拷贝内容

''''*****************************************************************************
''''文件:SetIdentity.vbs
''''版本:1.0
''''版权:floodzhu ([email protected]),2004.12.31
''''功能:遍历物理模型中的所有表,把是主键但不是外键的字段设置为Identity,适用于
'''' 物理模型为MS Sql Server的类型。
''''用法:打开物理模型,运行本脚本(Ctrl+Shift+X)
''''备注:我有两个习惯,一个是把所有表的主键都定义为自增长的int类型,另一个是定义
'''' 一个Domain叫ID,在设计概念模型时把所有的PrimaryKey字段的Domain设置为ID
'''' 类型。
''''
'''' 如果我进行了上面的设置,则在转化为物理模型时需要手工设置Identity,
'''' 最笨的方法是一个表一个表进行设置,最简单的方法是在物理模型中直接对Domain
'''' 进行设置。对Domain进行设置有一个小缺点,就是如果该字段不是主键也不是生
'''' 成的外键,而是一个一般字段,例如表示树状结构的PID,则它也会被设置为
'''' Identity,不过由于这种字段比较少,而且在生成数据库时会发生错误可以提醒
'''' 你进行纠正,所以可以轻松过关而不至于隐藏错误,所以是一种好方法。
''''
'''' 用下面的代码可以给你第三种选择,而不会发生任何错误。
''''*****************************************************************************dim model ''''current model
set model = ActiveModel

If (model Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessTables model
End If

''''*****************************************************************************
''''函数:ProcessTables
''''功能:递归遍历所有的表
''''*****************************************************************************
sub ProcessTables(folder)
''''处理模型中的表
dim table
for each table in folder.tables
if not table.IsShortCut then
ProcessTable table
end if
next

''''对子目录进行递归
dim subFolder
for each subFolder in folder.Packages
ProcessTables subFolder
next
end sub

''''*****************************************************************************
''''函数:ProcessTable
''''功能:遍历指定table的所有字段,如果该字段是主键但不是外键,则设置为Identity
''''*****************************************************************************
sub ProcessTable(table)
dim col
for each col in table.Columns
''''对于是主键且不是外键的字段设置为Identity(自增长类型)
if col.Primary and not col.ForeignKey then
col.Identity = true
end if
next
end sub


6.不同模型之间添加引用


powerdesigner问题_第4张图片

如上所示,我要让security的模型能引用到当事人的模型,那么可以双击security

powerdesigner问题_第5张图片

点击
Related Diagrams

7.PowerDesigner code、name显示设置 及 同时显示办法
菜单->Tool->Model Options->Name Convention->右侧display中选择显示name还是code。

不支持同时显示,但可以选择显示code,然后将name填入stereotype中,变相同时显示。

设置stereotype显示与否:菜单->Tool->Display Preferences->Object View中选择各对象的stereotype是否显示

你可能感兴趣的:(sql)