这里总结一篇关于数据建模工具 PowerDesigner 的使用小技巧,下面列出的两个应用场景要在网上现找解决方案的话还真不一定好找,所以选择将这两个棘手的问题先记下来。

1. PDM 中表间关系出现多引用情况

  这种情况一般是在由 LDM 生成 PDM 时,对于一对一联系,没有指定主从表关系,如图:

  

  导致生成的 PDM 中出现一对一关系出现两个引用:

  

    如果指定了 Dominant role ,则只会产生一个引用:

  

  

2. 去外键问题

  默认情况下,通过 PDM 生成数据库初始化脚本时会带有外键生成脚本,如下:

  如果在 PDM 的关系属性中将 Generate 后面的钩去掉则可解决(话说这个问题还卡了蛮长时间,最后是一个老工程师指点的)

  

3. 在 PDM 中将字段命名格式改成下划线分隔形式

  需要进行操作: Tools -> Excute Commands -> Edit/Run Script , 如下图:

  

  选择执行脚本文件: ToLowerCase.vbs :

  

  

  最后点击 Run 即可,点完不会有任何弹窗予以提示,可直接点击 PDM 中的表查看。这里将 ToLoweCase.vbs 中的代码共享一下:

Option Explicit
ValidationMode = True
InteractiveMode = im_Batch Dim mdl ' the current model
Dim i ' 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 Private Function ToLowerCase(input)
Dim result, ch, prevIsUpper
result = ""
For i = to Len(input)
ch = Mid(input, i, )
If Asc(ch) < And Asc(ch) > Then
If i > And Not prevIsUpper Then
result = result + "_"
End If
result = result + LCase(ch)
prevIsUpper = True
Else
result = result + ch
prevIsUpper = False
End If
Next
ToLowerCase = result
End Function ' This routine copies the name into code for each table, column and view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
Dim rc 'return code for each Tab in folder.tables
if not tab.isShortcut then
tab.Code = ToLowerCase(tab.Code)
'output ToLowerCase(tab.Code)
Dim col ' running column
for each col in tab.columns
col.Code = ToLowerCase(col.Code)
'output ToLowerCase(col.Code)
next
end if
next
end sub

PowerDesigner 使用小结的更多相关文章

  1. 第七周作业:powerdesigner使用小结

    powerdesigner使用小结 这款软件使得开发人员为了方便进行数据库的建立以及逻辑关系的实现,而不用自己去“手写”代码,代码在数据库建模完成后可以直接的生成. 如果你电脑上安装了这款软件的话可以 ...

  2. PowerDesigner实用技巧小结(3)

    PowerDesigner实用技巧小结(3) PowerDesigner 技巧小结 sqlserver数据库databasevbscriptsqldomain 1.PowerDesigner 使用 M ...

  3. PowerDesigner实用技巧小结(2)

    PowerDesigner实用技巧小结 1.ORACLE数据库建模时,由于ORACLE的表名.字段名如果是小写会有一定的麻烦,需要将小写转化为大写? (1)在打开pdm的情况下,进入Tools-Mod ...

  4. PowerDesigner实用方法小结(1)

    PowerDesigner使用方法小结 PowerDesigner多用来进行数据库模型设计,具有SQL语句自动生成等功能.当然,也有不少缺点,比如团队分享. 一.设置PowerDesigner模型视图 ...

  5. 【转】PowerDesigner使用方法小结

    本文转自:http://www.cnblogs.com/afarmer/archive/2012/11/05/2755327.html PowerDesigner多用来进行数据库模型设计,具有SQL语 ...

  6. PowerDesigner使用方法小结

    PowerDesigner多用来进行数据库模型设计,具有SQL语句自动生成等功能.当然,也有不少缺点,比如团队分享. 一.设置PowerDesigner模型视图中数据表显示列 1.Tools-Disp ...

  7. PowerDesigner实用技巧小结(4)

    下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的.对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握.并逐步做到:在应用中发展,在发展中应用. 1. ...

  8. PowerDesigner(六)-物理数据模型(PDM逆向工程)(转)

    物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的DBM ...

  9. PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)(转)

    概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户之 ...

随机推荐

  1. git的下载和安装

    Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://g ...

  2. 【20191118会议】针对华为云CCE 问题总结

    针对华为云CCE问题总结 如何购买CCE集群 可以分为测试环境和生产环境,针对使用范围进行购买集群. 测试环境 可以进行公用 生产环境建议使用单独集群 尤其针对部门大 耦合性不高 ,生产环境 建议使用 ...

  3. JDK环境变量配置window

    下面开始配置环境变量,右击[我的电脑]---[属性]-----[高级]---[环境变量],如图: ​选择[新建系统变量]--弹出“新建系统变量”对话框,在“变量名”文本框输入“JAVA_HOME”,在 ...

  4. Codeforces #366 (Div. 2) D. Ant Man (贪心)

    https://blog.csdn.net/liangzhaoyang1/article/details/52215276  原博客 原来好像是个dp题,不过我看了别人的博客使用贪心做的 复杂度(n^ ...

  5. 切换Python环境 linux终端命令行

    切换Python环境 conda info -e // 查看有什么环境 source activate env //切换环境 linux终端分屏 terminator  https://www.jia ...

  6. seo与python大数据结合给文本分词并提取高频词

    最近研究seo和python如何结合,参考网上的一些资料,写的这个程序. 目的:分析某个行业(例如:圆柱模板)用户最关心的一些词,根据需求去自动调整TDK,以及栏目,内容页的规划 使用方法: 1.下载 ...

  7. xcode 查看stastic

    点GPU 双击柱状图 从上面list里点performance

  8. 多任务创建-线程(IO密集型适用)

    单核CPU:时间片轮转 并行:CPU的个数大于等于任务数 真的多任务执行 并发:CPU的个数小于任务数 假的多任务 知识点: 多线程共享全局变量 创建线程的两种方法: 1.创建子线程方法 调用函数 T ...

  9. go if for while 的使用

    fileName := "a.txt"contents ,err := ioutil.ReadFile(fileName) if err != nil{ fmt.Println(& ...

  10. clean()方法的简单应用

    clean()方法主要用于验证相互依赖的字段,例如注册时,填写的“密码”和“确认密码”要相等时才符合要求. 在调用表单clean() 方法的时候,所有字段的验证方法已经执行完(表单字段的默认验证(如C ...