打开PD软件:

1.新建概念模型(conceptual Data Model)

File-->New Model-->Conceptual Data Mode
或者点击工作区,右键-->New Model-->Conceptual Data Mode

2.打开模型时,会有方格线,去除方格线

Tools-->Dis

3.创建表并建立关系:

各个含义如下:

但是我在创建的过程中,报错如下:

在创建的过程中,人员表里有主键Code,性别表里也有主键Code,但是在创建的过程是报错,说是Code已经被占用了,

去除属性名重复的方法如下:

使用PD中,CDM默认实体属性不能重名,在CDM中唯一。可以通过设置,取消该限制。

选择 Tools->Model Options,取消 Data Item 组的Unique code 和 Allow reuse复选框。

    Unique:设置实体属性是否唯一

    Allow reuse:设置实体属性是否允许重用

注:默认使用唯一代码的好处是,改变属性,其他引用该属性的实体,都一起修改。该功能可以通过domain实现,设置属性在同一domain中,当需要修改字段类型的时候,修改domain一处即可。

4.将概念模型转换成物理模型

方法一:

操作:Tools-->GeneratePhysical Data Model

快捷键:ctrl+shift+p

注意:如果你的数据库是SQL server,请一定要选择要选择SQL Server 2008,

进入下图界面:(根据自己的需求切换相应的DBMS(数据库)点击【确定】就会将概念模型转换成物理模型).

??但是在生成的过程中报了一个实体属性重复的错误(如下图):

Checking data item ...
- Data Item name uniqueness
- Data Item code uniqueness
Error The following data item does not have unique code:
-> Data Item '编码' (<Model>)
-> Data Item '编码' (<Model>)
- Data Item not used
- Data Item used multiple times

解释:从上面的错误可以看出,PD给我们说,我在检查所有实体属性的过程中,发现了重复的属性,有两个相同的属性(Code和Name):编码

这是因为虽然我们在概念模型中:创建实体的过程中允许实体使用相同的编码和名称,但是我们并没有同时修改:在概念模型转换为物理模型的检查规则,我们这里,可以去修改检查实体的报错规则就可以了。

解决办法:

方法二:

General不变,Detail中将Check model去掉,就在转换为物理模型时不再检查实体错误了(当然这些错误是PD定义的默认规则)

5.物理模型如下:

6.生成带注释的sql

a.操作:Database-->Generate DataBase。。。,进入下图页面,

b、勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!

在Options可以选择要生存脚本的内容,可以选择是否创建数据库的脚本,选择要生成脚本的表


c、在selection中选择你需要生成sql的模块,指定输出目录。

7.PD图转换为脚本至此结束。

备注:有了脚本,找个数据库执行吧! 

如果自己懒得修改脚本,最好新建个数据库去执行;  你勤快些的话可以把其他没用的脚本干掉,只保留主要脚本就OK了。

使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本的更多相关文章

  1. 创建数据库表的SQL语句

    创建表.视图.索引的sql语句如下: CREAT TABLE (列名,数据类型,约束) create view(创建视图) create index (创建索引) 1.primary key(主键) ...

  2. MySQL必知必会-官方数据库表及SQL脚本导入生成

    最近在复习SQL语句,看的是MySQL必知必会这本书,但是发现附录中只有表设计,没有表的具体数据.所以在学习相应的语句中体验不是很好,去网上查了数据库的内容,自己慢慢导入到了数据库中.把表放出来作为参 ...

  3. 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

    本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...

  4. 使用PowerDesigner创建数据库表图文并茂版

    使用PowerDesigner创建数据库表图文并茂版 使用PowerDesigner 建数据库表. 一直很忙,没有时间写东西.这次搞点会声会色的,嘿嘿 此技能为项目经理必备技能. 本次主角: 1.在w ...

  5. GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  6. django使用model创建数据库表使用的字段

    Django通过model层不可以创建数据库,但可以创建数据库表,以下是创建表的字段以及表字段的参数.一.字段1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一 ...

  7. Sql中根据旧表创建新表的SQL语句

    今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案 create table tab_new like tab_old (使用旧表创建新表) create table tab_new a ...

  8. JAVA 自动生成对应数据库表的JPA代码工具

    http://blog.csdn.net/zheng2008hua/article/details/6274659 关键词:JPA 数据库表代码自动生成,JPA代码生成     自动生成对应数据库表的 ...

  9. 数据库(一)--通过django创建数据库表并填充数据

    django是不能创建数据库的,只能够创建数据库表,因此,我们在连接数据库的时候要先建立一个数据库. 在models.py中 from django.db import models class Pu ...

随机推荐

  1. 理解nodejs模块的scope

    描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...

  2. continue break 区别

    在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break  将会跳出整个循环, 此循环将会被终止 count = ...

  3. Android Studio开发RecyclerView遇到的各种问题以及解决(二)

    开发RecyclerView时候需要导入别人的例子,我的是从github导入的,下载下github的压缩包之后解压看你要导入的文件是priject还是Module.(一般有app文件夹的大部分是pro ...

  4. NOIP模板整理计划

    先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...

  5. SQL Server的AlwaysOn错误19456和41158

    SQL Server的AlwaysOn错误19456和41158 最近在公司搞异地数据库容灾,使用AlwaysOn的异地节点进行数据同步,在搭建的过程中遇到了一些问题 软件版本 SQL Server2 ...

  6. C++的性能C#的产能?! - .Net Native 系列四:性能测试方法(PerfView)

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  7. Egret3D 研究报告(一)初试

    了解的朋友应该知道我最近一直都在鼓吹webgl. 今天有一点时间,加了一个Egret3D的群,就开始了这个坑. 耳听为虚,眼见为实.让我们荡起双桨,一起去刷一下egret 打开姿势 至于以什么姿势打开 ...

  8. 对jquery操作复选框

    摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta chars ...

  9. 读取xml数据装配到字典中之应用场景

    前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...

  10. Jps命令—使用详解

    jps是jdk提供的一个查看当前Java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写.非常简单实用. 命令格式:jps [option ...