`

PowerDesign高级应用 设计数据库规范

阅读更多
PowerDesign高级应用

1、去掉Oracle生成的SQL创建语句中的双引号
用powerdesigner导出orale数据库的建表sql时,默认会给表名和字段名加上双引号,如下图:

这样给操作数据库带来很大的不便,解决的办法是设置Database菜单,

然后点击Edit Current DBMS菜单,再依次点开Script->Format,然后找到CaseSensitivityUsingQuote
将其设为NO,即可。如下图:

如果带有包的话,导出时要选择包中的表。

2、PowerDesign高级应用
编写相关的VBS脚本在PowerDesign里自定义一些命令与操作等,具体的可以参考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目录下的脚本示例。怎么运用这些脚本呢?
在Tools->Execute Commands里可以进行操作。具体说明在帮助里写的很清楚。帮助的位置在 PowerDesigner General Features Guide-> PART 2. Modeling Guide->CHAPTER 8. Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner

PowerDesign的使用主要是DBMS的配置
3、修改建表脚本生成规则。
如果每个表格都有相同的字段,可以如下修改:
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:

/* tablename: %TNAME% */
create table [%QUALIFIER%]%TABLE% (
%TABLDEFN%
ts char(19) null default convert(char(19),getdate(),20),
dr smallint null default 0
)
[%OPTIONS%]

其中的 ts、dr 两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME% 变量是给每个表格的SQL添加一个该表的Name值注释。

4、修改字段生成规则
要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

5、修改外键命名规则。
选择Database—>Edit Current DBMS
选择Scripts-》Objects-》Reference-》ConstName
可以发现右侧的Value为:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1
掌握这种方法后就可以按照自己的想法修改了

生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。

6、添加外键
Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段。如下图:

接着出现如下画面:

按照步骤操作即可。

7、取消name和code联动
在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。如图:



编写相关的VBS脚本在PowerDesign里自定义一些命令与操作等,具体的可以参考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目录下的脚本示例。怎么运用这些脚本呢?
在Tools-》Execute Commands里可以进行操作。具体说明在帮助里写的很清楚。帮助的位置在 PowerDesigner General Features Guide-> PART 2. Modeling Guide->CHAPTER 8. Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner

PowerDesign的使用主要是DBMS的配置
1、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改:
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:

/* tablename: %TNAME% */
create table [%QUALIFIER%]%TABLE% (
%TABLDEFN%
ts char(19) null default convert(char(19),getdate(),20),
dr smallint null default 0
)
[%OPTIONS%]

其中的 ts、dr 两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME% 变量是给每个表格的SQL添加一个该表的Name值注释。

2、修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

3、修改外键命名规则。选择Database—>Edit Current DBMS
选择Scripts-》Objects-》Reference-》ConstName
可以发现右侧的Value为:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1
掌握这种方法后就可以按照自己的想法修改了

生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。

4、添加外键
Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段

5、去掉生成的SQL脚本双引号的问题:ORACLE 8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默认是Yes所以会有双引号。

在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。

PowerDesigner设计数据库规范

----初稿 by 罗军

需求:

虽然目前我们的数据库设计模式能够满足开发要求,也节省了开发时间,但是这样的设计会对以后工程项目的维护、改版造成成本上的增加。数据库表的字段在修改上将对主程序造成影响;另外对于开发和维护人员来说,字段的编码也需要规范化,这样可以统一字段编码,让维护人员一看就懂,增添的字段对以后接手项目的人员来说则很容易上手。

针对上述问题,我建议数据开发需要定义一套简明扼要的规范。规范中包括三个部分:一是编码的规范;二是字段类型长度的定义;三是表设计的特殊说明。

设计:

数据库开发流程先知:PowerDesigner中,我们主要设计物理数据模型(PDM文件),这时需要定义一个工程项目的数据字段域,定义字段域有一个好处就是以后设计数据表时,字段的类型可以选择用域中定义好的类型,更改了域的类型信息,表中与域引用相关的字段信息也相应改变,这样方便修改字段,也统一了字段类型和长度。

定义好域之后,就可以设计数据表以及字段了。设计完表,可以选择导出的数据库类型,并生成建数据和建表的sql,再通过数据库连接工具执行sql语句,一个工程项目的数据库就建立好了。以后只要有数据库的修改要求,则重新生成sql语句并执行之即可。注意:重新执行sql之前需要确定是否保留原表的数据,若需要保留则只能通过alert语句来修改,否则原表的数据将被冲洗掉。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/lejuo/w.JPG"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 331.5pt; HEIGHT: 255pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Clj%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.emz"></imagedata></shape>

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 331.5pt; HEIGHT: 255pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Clj%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.emz"></imagedata></shape>

I 数据库设计流程图

如图(图I)所示为数据库设计流程图,如果有修改内容,我们只需要重新执行箭头2所指的三个步骤就行。

以下说明数据库设计过程中的一些要求。

1) 编码规范

编码主要是要注意编码的前后缀,以便看到编码则知道是什么类型。

A. 主键pk_ [字符串or长整型] 例如:pk_company

B. 外键fk_ [字符串or长整型] 例如:fk_employee

C. 字符串 v 例如:vdetail

D. 字符型 c 例如:ccolor

E. 时间 d 例如:ddatetime

F. 逻辑 b 例如:bisdeleted

G. 整型 i 例如:itype

H. 数字型(浮点行) n 例如:nprice

I. 文本型 t 例如:tdescription

J. 对象类型 o 例如:opicture

给各个表与字段编码时,尽量保持编码的长度在20个字符以内,编码要求有一定意义,并且易懂。

2) 字段类型长度定义

主键、外键如果是字符串行的话,建议用20个字符的长度。字符串的长度一般定义203050100256512102420484096,超过4096个字符可以建议用文本类型来定义。定义字段的长度主要用于定义域的字段长度,从而规范表字段的类型及长度。

3) 表设计的特殊说明

一般,表中的记录如果是假删除的话,则每个表需要统一的删除字段,另外,时间字段一般每一个表也要求出现,这样设计可以考虑目前或者以后做多线程访问的控制判断(即允许多读,但不允许多写),以后还有可能对一类表有固定必需字段的要求,这样的需求可以利用powerdesigner来统一添加。另外,每一表建议只有主键非空,其余字段均可空,字段的非空判断交由程序来处理,不用数据库来判断。

分享到:
评论

相关推荐

    图书:PowerDesign软件分析设计技术

    PowerDesign是一款强大的数据建模工具,广泛应用于软件开发的前期分析和设计阶段,对于理解和优化数据库结构至关重要。 首先,书中详细介绍了PowerDesign的基本操作和界面布局,包括如何创建新模型、导入ER图、设置...

    powerDesign.chm 中文手册 chm版

    PowerDesigner是Sybase公司出品的一款高级系统建模工具,广泛应用于数据库设计、数据仓库建模和企业信息架构规划等领域。 在《powerDesign.chm 中文手册》中,你可以找到以下关键知识点: 1. **概念模型...

    powerdesign生产数据模型文档的方法

    标题中的“powerdesign生产数据模型文档的方法”指的是使用PowerDesigner这一强大的数据库设计工具来创建数据模型并生成相应的文档。PowerDesigner是Sybase公司提供的一款高级建模工具,它支持概念数据模型(CDM)、...

    powerdesigner中文帮助文档及初学者必看及学习文档

    - **PowerDesign学习文档.docx**:这个文档可能深入讲解了PowerDesigner的高级特性和最佳实践,对于深化理解非常有帮助。 通过阅读这些学习资源,初学者可以逐步掌握PowerDesigner的用法,从基础操作到高级技巧,...

    PowerDesigner资料大全,这是本人学习PowerDesigner时用的一些资料,现在打包整理出来供大家参考。

    在压缩包内的“powerdesign”文件,可能是PowerDesigner的实例模型文件或教程文件,用户可以通过打开这些文件来实践操作,加深对软件的理解。这些文件可能包含了各种类型的模型示例,从简单的实体关系模型到复杂的...

    powerdesigner的两个不错的教程

    它支持多种数据库平台,如Oracle、SQL Server、MySQL等,使得数据库设计工作更加高效、规范。 ### 数据库模型设计 PowerDesigner的核心功能之一是数据库模型设计,包括概念数据模型(CDM)、物理数据模型(PDM)和...

    powerdesigner 导出报告模板

    PowerDesigner是一款强大的数据库设计与建模工具,广泛应用于IT行业中,尤其在系统分析、数据库设计和数据仓库构建等领域。"PowerDesigner导出报告模板"这个主题主要涉及如何使用PowerDesigner来定制和导出报告,以...

    dvcon-2018_low-power-coverage-the-missing-piece-in-dynamic-simulation_paper.pdf

    在现代芯片设计中,为了管理和控制芯片上的功率消耗并减少功耗,几乎每个设计都会采用统一电源格式(Unified Power Format, UPF)标准来实现低功耗设计验证(Low Power Design Verification, LPDV)。UPF是一种基于...

    软件工程师.doc

    良好的代码编写习惯和软件开发规范是基本要求,同时需要具备一定的文档编写能力和建模设计工具的使用能力,如Rose、PowerDesign、Visio等。 C#项目开发人员需有计算机本科以上学历和一定的项目开发经验,熟悉ASP...

    IBM RedBook :WebSphere Application Sever V7 Concepts, Planning, and Design

    它定义了一套用于开发、部署多层企业应用程序的标准规范。Java EE 通过提供一系列的服务组件、API 和编程模型来支持企业级应用的构建,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JPA(Java ...

    PowerDesigner15系统分析与建模实战.pdf

    PowerDesigner是一款流行的企业级建模工具,广泛应用于系统分析、数据库设计和数据建模等领域。通过这本书,读者将学习如何有效地利用PowerDesigner进行全方位的建模工作。 首先,本书从PowerDesigner的基础知识...

    计算机专业英语关键词~~

    1. **Object-Oriented Design (面向对象设计)**:一种编程范式,强调使用“对象”来设计软件。 2. **HTML (超文本标记语言)**:用于创建网页结构的标准标记语言。 3. **XHTML (可扩展超文本标记语言)**:HTML的一个...

Global site tag (gtag.js) - Google Analytics