zoukankan      html  css  js  c++  java
  • Powerdesigner生成数据库表

     

    标签:

    杂谈

    分类: 数据库技术

    工具:

    Sybase PowerDesigner 15.1

    Microsoft SQL Server 2005

    第一步概要设计:

    打开PowerDesigner软件,设计“概念数据模型”(Conceptual Data Model):

    点击workspace 右键---》New—>Conceptual Data Model,

    弹出如下界面:

    image

    设计表、表结构:

    Powerdesigner生成数据库表

    在设计属性(字段)的时候,三个字母(M、P、D)分别表示:

    M:是否为空;(√表示不允许为空)

    P:是否为主键;

    D:是否在该软件的视图中显示

    第二步:物理设计

    将“概念数据模型”设计的表转换为“物理数据模型”(Physical Data Model),实际上是从“概要设计”转换为“详细设计”,即对表的具体实现。

    将概要设计模板转换为物理设计

    选择“Tools”-->“Generate Physical Data Model…”即可。

    Powerdesigner生成数据库表

    然后选择你的DBMS.

    Powerdesigner生成数据库表

    点击“确定”按钮以后,就产生了对应“SQL Server 2005”数据库的表、属性、关系的具体实现。

    这时就会有一个物理设计的模板出现,将你在概要设计时的实体都转换成具体的表。

    第三步:在SQL Server 2005中手动创建数据库(也可以用SQL创建库,pd可以将我们的表设计都转换成SQL)

    需手动在SQL SERVER 2005中创建您的数据!如:“Students“,此过程省略…

    第四步:在数据源ODBC中配置用户数据源

    Powerdesigner生成数据库表

    第五步:在SQL Server 2005中自动创建表结构

    首先:根据“物理数据模型”(Physical Data Model)自动建立相应的SQL语句:

    Powerdesigner生成数据库表

    其次:执行其创建的SQL语句文件,将数据表结构自动创建到SQL Server 2005数据库中:

    Powerdesigner生成数据库表

    完成以上步骤后,刷新SQL Server 2005数据,将会看到你所创建的相关表结构。

    另外生成单张表SQL语句可以:

    在物理设计模板中,选择表--》右键—》SQL Perview…

    image

    生成SQL创建库和表,我喜欢懒人式,或者说拿给客户时,客户用的爽。。。

    建立表的主外键关系:

    使用PowerDesigner物理模型为建的关系表添加外键,有个原则就是主表的主键名称必须和副表的外键名称一致。

    测试(仅测试,不含技术)

    1.建主表user                                                   2.建副表department

                 uid int primary key                                 did int primary key

                  name varchar(32)                                 uid int

    2.对着模型右击New->Reference

                  parent表为user表,child表为department

    这样就建立了关系,外建也自动建立了。

    关于表关系的建立,本人也存疑,但有三种思路:

    1、概要设计时设计好关系。(个人倾向于这种方式,有时间尝试)

    2、物理设计时设计好关系(笔者使用此方法,若表很多,关系复杂,此阶段设计关系会很痛苦。偶深受其害!)

    3、生产数据库后,DBMS中建立关系(这种方式是笔者突发奇想,仔细思考,不建议采用这种方式,如果使用T-SQL重构数据库,又得重建关系)

    仔细思考过后,个人认为概要设计时,设计实体、实体必要属性、实体与实体关系,然后在数据库物理设计时详细设计表属性等内容。

    总有这样那样的途径方便我们去做那些繁琐的工作,哎,还未找到之前,只能靠自己去摸索了。。。。

  • 相关阅读:
    nginx: [emerg] the size 10485760 of shared memory zone "cache_one" conflicts with already declared size 0
    ruby 删除文件夹(包括文件夹中的文件夹和文件)
    nisi 脚本示例
    将node-expat扩展编译至node.exe中
    将odbc扩展编译至nodejs程序集中
    微信小程序数据传递基本
    Java环境配置
    Angular环境配置
    mysql中常用的数据类型
    html中a标签的4个伪类样式
  • 原文地址:https://www.cnblogs.com/ZhangYuLIng/p/4152418.html
Copyright © 2011-2022 走看看