一篇文章带你学习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 勾选

相关推荐
uzong3 小时前
技术故障复盘模版
后端
GetcharZp4 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程4 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研4 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi5 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国6 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy6 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack6 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
bobz9657 小时前
pip install 已经不再安全
后端
寻月隐君7 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github