PowerDesigner中转换物理模型时的命名转换

最近在使用PowerDesigner建模数据库,在使用中积累了一些遇到的问题和解决办法,记录下来,希望对遇到同样问题的朋友有所帮助。

早期在PowerDesigner中,只有概念模型和物理模型,一般是先建立概念默认,然后根据具体的数据库生成物理模型。但是概念模型太抽象,物理模型太具体,于是在PowerDesigner15版本之后出现了“逻辑模型”,能够从概念模型和物理模型各自的角度上都容易理解。所以现在的数据库建模方式就变成了先建立概念模型然后生成逻辑模型,修改了逻辑模型后,最后生成物理模型,由物理模型生成数据库脚本。

在生成物理模型时,遇到了以下几个问题:

一.在选择生成SQL Server 2005或者SQL Server 2008时,没有将Date类型和Time类型转化为Date类型和Time类型,而是转化为了DateTime类型。这点非常受不了,本来在概念设计时就分了Date ,Time,DateTime,结果转化到SQL Server后就全部变成了DateTime了。

SQL Server 从2005开始就支持单独的Date类型和Time类型了,而不像SQL Server2000那样,只有DateTime和SmallDateTime。解决办法如下:

1.打开该物理模型或者随便新建一个空白的SQL Server 2008的物理模型。

2.选择菜单“Database”下的“Edit Current DBMS”选项,打开了DBMS Properties对话框。

3.在General选项卡中,展开Script、DataType,选中AmcdDataType,可以看到内部数据类型和物理数据类型的映射表,将D和T对应的数据类型改为date和time,然后点击“确定”保存该更改。


4.回到逻辑模型,重新生成物理模型,即可。

二、生成的物理模型默认情况下模型验证不通过,“Constraint name uniqueness”,生成的外键名时单词简略的有点奇怪。

这种情况下的解决办法和上一个问题的解决办法类似,还是在DBMS Properties中进行修改。

1.打开DBMS Properties窗口。

2.在General选项卡中,展开Script、Object、Reference,选中ConstName,可以看到Value值为FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%,这个规则我个人不是很喜欢,容易造成重名,所以我打算使用FK_加上Reference的Code来生成外键名,所以改为:FK_%REFRCODE%

3.保存,重新生成。

三、默认生成的主键是非聚集索引,应该默认是聚集索引。

这个问题比较麻烦,不知道为什么生成的主键索引是非聚集索引,但是简单的改法也是与上面操作类似。

找到Script、Object、PKey的Create选项,其Value值如下:

alter table [%QUALIFIER%]%TABLE%[%R%?[ with nocheck][ with check]]
add [constraint %CONSTNAME% ]primary key [%CLUSTER%?[%R%?[clustered ]]:nonclustered ](%PKEYCOLUMNS%)
[%OPTIONS%]

这里有一个控制是否聚集索引的开关%CLUSTER%和%R%,不知道这两个变量是在哪里设置的,不过可以简单粗暴的将该脚本改为:

alter table [%QUALIFIER%]%TABLE%[%R%?[ with nocheck][ with check]]
add [constraint %CONSTNAME% ]primary key clustered (%PKEYCOLUMNS%)
[%OPTIONS%]

这样生成的脚本就是Cluster的了。

时间: 2024-12-30 10:41:30

PowerDesigner中转换物理模型时的命名转换的相关文章

在Word 2007中使用打开时确认文件格式转换功能

在Word2007文档中,为了能更好地使用"从任意文件还原文本"功能,用户需要启用"打开时确认文件格式转换"功能,以 在打开并恢复文件时出现文件格式转换对话框,从而更灵活地控制文件还原过程.在Word2007中启用"打开时确认文件格式转换 "功能的步骤如下所述: 第1步,打开Word2007文档窗口,依次单击"Office按钮"→"Word选项"按钮,如图 2012040611所示. 图2012040611

在Word 2010中使用打开时确认文件格式转换功能

在Word 2010文档中,为了能更好地使用"从任意文件还原文本"功能,用户需要启用"打开时确认文件格 式转换"功能,以在打开并恢复文件时出现文件格式转换对话框,从而更灵活地控制文件还原过程.在Word 2010中启用 "打开时确认文件格式转换"功能的步骤如下所述: 第1步,打开Word 2010文档窗口,依次单击"文件"→"选项"按钮,如图2012022507所示. 图2012022507 单 击&quo

JavaScript中对象与字符串如何互相转换

在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxE

php把大写命名转换成下划线分割命名

  这篇文章主要介绍了php把大写命名转换成下划线分割命名,本文讲解对一些不习惯大写风格的命名方法如帕斯卡命名.驼峰命名法进行转换的方法,需要的朋友可以参考下 有时候需要把一个字符串中的大写转换成 _+小写的方式,在变量命名的时候会碰到这种问题,直接上代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 $name = 'AppPromoZhongQiu2014ActiveStatusSelector';   echo cc_format($

ms sql-求助!存储过程中的“SET ANSI_NULLS ON自动转换成 OFF”的问题,在线等~

问题描述 求助!存储过程中的"SET ANSI_NULLS ON自动转换成 OFF"的问题,在线等~ 如题,今天突然发现数据库中的存储过程里面的"SET ANSI_NULLS ON" 都变成了 OFF,一直以来都没有遇到过这样的情况,请问是什么原因能导致这样的问题出现呢?求解~~~ 解决方案 在创建或修改 Transact-SQL 存储过程时,数据库引擎 将保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 的设置.执行存储过程时,将

link中如何将迭代的结果转换成流模式?比如二进制流或者其它流?

问题描述 link中如何将迭代的结果转换成流模式?比如二进制流或者其它流? link中如何将迭代的结果转换成流模式?比如二进制流或者其它流? 解决方案 https://msdn.microsoft.com/zh-cn/library/system.io.stream.aspx在实现 Stream某个派生类,必须为 Read 和 Write 方法提供实现. 异步方法 ReadAsync.WriteAsync和 CopyToAsync 使用这些实现的同步方法 Read 和 Write. 因此,您的

向各位大神请教在我通过外键id查找主键表内容时出现不能转换的问题怎么解决

问题描述 向各位大神请教在我通过外键id查找主键表内容时出现不能转换的问题怎么解决 解决方案 先上代码 拿出来再看什么情况 解决方案二: 猜测是类转换异常造成的 解决方案三: 其实是我dao中的id和映射表中的id有大小写的区别.

pdf-使用swftools转换PDF时为什么在cmd命令下转换正常,但在swftools工具里转换却异常?

问题描述 使用swftools转换PDF时为什么在cmd命令下转换正常,但在swftools工具里转换却异常? 在java编码里转换和swftools里转换一个样,转换后,打开,只能看到左上角有一个文件的小点,但在cmd命令下转换却完全正常!大侠们谁知什么原因? String command = ""D:SWFToolspdf2swf.exe d:/abc.pdf -o d:/abc.swf -T 9""; Process pro = Runtime.getRunt

php中时间戳和日期格式的转换

原文:php中时间戳和日期格式的转换 一,PHP时间戳函数获取指定日期的unix时间戳 strtotime("2009-1-22″) 示例如下: echo strtotime("2009-1-22″) 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,PHP时间戳函数获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间 (1)打印明天此时的时间戳strtotime("+1 day") 当前时间: