一篇文章带你学习PowerDesigner16常用操作

根据PostgreSQL 反向生成物理模型

文件 ->反向工程->Database

点击Database 填写模型名称,选取数据库类型,给到作者的sql是PostgreSQL 版本17 对应到 PowerDesigner 16 选最高版本的 PostgreSQL 9x ,点击确定后添加导入的sql文件,点击确定稍一会会,模型就全部生成好啦。

生成的模型有两个问题

1、没有注释 2、修改name编辑汉字注释,code列 随着name列变化

没有注释,设置注释列

选择表右击选择属性(Alt+Enter),弹出表属性对话框,选择Columns,默认是没显示Comment的,显示Comment列,点击漏斗后会出现一个列表找到Comment 勾选。如图是勾选后的样子 。作者设置了Comment列后,还是没有中文注释,又进行了一个设置,重新导入后才显示喔。

设置Comment列后导入还是没有汉字的注释 ,又设置了 [%QUALIFIER%]

Tools(工具栏)->Resources -> DBMS....

PostgreSQL9x -> Script -> Objects -> ColumnComment ->值增加 [%QUALIFIER%]

由于脚本导出的时候会增加限定符模式标识,而读取的时候也需要,PowerDesigner默认配置没有,加上就好了

sql 复制代码
comment on column [%QUALIFIER%]%TABLE%.%COLUMN% is %.q:COMMENT% 

sql 贴出来 ,base 对应 [%QUALIFIER%]

sql 复制代码
DROP TABLE IF EXISTS "base"."t_log";
CREATE TABLE "base"."t_log" (
  "id" int8 NOT NULL DEFAULT nextval('"base".t_log_id_seq'::regclass),
  "support_platform_id" int8,
  "url" varchar(128) COLLATE "pg_catalog"."default",
  "content" text COLLATE "pg_catalog"."default",
  "result" int2 DEFAULT 0,
  "code" int4,
  "message" text COLLATE "pg_catalog"."default",
  "create_by" varchar(50) COLLATE "pg_catalog"."default",
  "create_time" timestamp(6),
  "last_update_by" varchar(50) COLLATE "pg_catalog"."default",
  "last_update_time" timestamp(6),
  "sync_data_type" int2 DEFAULT 1,
  "customer_app_id" int8,
  "customer_id" int8,
  "sync_method" varchar(50) COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "base"."t_log"."support_platform_id" IS '平台ID';
COMMENT ON COLUMN "base"."t_log"."url" IS '同步地址(全路径)';
COMMENT ON COLUMN "base"."t_log"."content" IS '同步内容,json字符串格式';
COMMENT ON COLUMN "base"."t_log"."result" IS '同步结果 0成功,1失败';
COMMENT ON COLUMN "base"."t_log"."code" IS '响应结果编码';
COMMENT ON COLUMN "base"."t_log"."message" IS '错误信息';
COMMENT ON COLUMN "base"."t_log"."sync_data_type" IS '同步数据类型:1. zq下发的数据,2. 管理平台数据';
COMMENT ON COLUMN "base"."t_log"."customer_app_id" IS '客户应用ID';
COMMENT ON COLUMN "base"."t_log"."customer_id" IS '客户ID';
COMMENT ON COLUMN "base"."t_log"."sync_method" IS '同步方法';
COMMENT ON TABLE "base"."t_log" IS '数据同步错误日志';

-- ----------------------------
-- Primary Key structure for table t_log
-- ----------------------------
ALTER TABLE "base"."t_log" ADD CONSTRAINT "t_log_pkey" PRIMARY KEY ("id");

列名排序显示

打开菜单 Tools (工具栏) ->Display Perferences (显示首选项) -> General Setting ->Table -> Advanced -> Columns -> 放大镜

设置展示的列名顺序 ,我把注释显示在前面,然后是code ,再然后是类型

Tools(工具栏) -> Execute Commands ->Edit/Run Script.. 或者用快捷键 Ctrl+Shift+X ,直接粘贴到运行框中,或者把下面的脚本保存成vbs结尾的脚本存储起来以后用。

vbnet 复制代码
    Option   Explicit   
    ValidationMode   =   True   
    InteractiveMode   =   im_Batch
    Dim blankStr
    blankStr   =   Space(1)
    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  
      
    Private   sub   ProcessFolder(folder)   
    On Error Resume Next  
          Dim   Tab   'running     table   
          for   each   Tab   in   folder.tables   
                if   not   tab.isShortcut   then   
                      tab.name   =   tab.comment  
                      Dim   col   '   running   column   
                      for   each   col   in   tab.columns   
                      if col.comment = "" or replace(col.comment," ", "")="" Then
                            col.name = blankStr
                            blankStr = blankStr & Space(1)
                      else  
                            col.name = col.comment   
                      end if  
                      next   
                end   if   
          next  
      
          Dim   view   'running   view   
          for   each   view   in   folder.Views   
                if   not   view.isShortcut   then   
                      view.name   =   view.comment   
                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

code列 随着name列变化

工具 ->常规选项 (General Options)-> Dialog -> Name to Code mirroring 取消勾选

操作栏调色板不见了

Tools(工具栏) -> customsize toolbars(自定义菜单和工具栏) -> palette(调色板)勾选上

设置外键

双击Table -> 属性 -> Keys -> Properties -> Add Columns 选择要添加的外键列 - >检查外键是否设置成功切回 -> Preview 查看 SQL语句

设置模型之间的连线,可费老劲了,呜呜呜

作者受了误导一度以为先设置外键的 keys ,然后把reference拖拽到两个表之间,啪自动就连上了 ,作者试了并没有 ,不知道怎么神奇的拖拽有那根线了 ,再然后不能复盘行为 ,呜呜呜呜呜 ,多次尝试终于整理出来了 ,选中reference ,拖拽到 table1 再拖拽到 table2 ,拖拽的意思是鼠标左单击不放手!!!双击连线Joins -> 设置连接关系。

the object has no symbol

右键PhysicalDiagram ->show symbols -> select all

设置字体大小

设置左侧菜单

Tools( 工具 ) -> general options (常规选项) -> Fonts (字体)-> 项 -> defalut UI font ,择字体样式、大小。

设置数据模型Table的字体

Tools ( 工具 ) ->Display Prefrences (显示偏好)-> Table - >Format -> Modify ->字体 ,选择字体样式、大小。

设置Preview字体(sql预览)

Tools ( 工具 ) -> general options (常规选项) -> Fonts (字体)-> 项 -> Code editor ,选择字体样式、大小。

觉得列名杂乱想凸出模型关系,只显示模型名隐藏列名

Tools ( 工具 ) ->Display Prefrences (显示偏好)-> Table -> Content ->取消 Columns 勾选

相关推荐
海绵波波10737 分钟前
flask后端开发(1):第一个Flask项目
后端·python·flask
AI人H哥会Java3 小时前
【Spring】控制反转(IoC)与依赖注入(DI)—IoC容器在系统中的位置
java·开发语言·spring boot·后端·spring
凡人的AI工具箱3 小时前
每天40分玩转Django:Django表单集
开发语言·数据库·后端·python·缓存·django
奔跑草-3 小时前
【数据库】SQL应该如何针对数据倾斜问题进行优化
数据库·后端·sql·ubuntu
中國移动丶移不动3 小时前
Java 并发编程:原子类(Atomic Classes)核心技术的深度解析
java·后端
Q_19284999065 小时前
基于Spring Boot的旅游推荐系统
spring boot·后端·旅游
愤怒的代码5 小时前
Spring Boot对访问密钥加密解密——RSA
java·spring boot·后端
美美的海顿5 小时前
springboot基于Java的校园导航微信小程序的设计与实现
java·数据库·spring boot·后端·spring·微信小程序·毕业设计
愤怒的代码5 小时前
Spring Boot中幂等性的应用
java·spring boot·后端
xiaocaibao7776 小时前
编程语言的软件工程
开发语言·后端·golang