使用PD建立物理数据模型

        这里介绍使用powerdesigner15.2建立物理数据模型的例子,以建立用户和角色之间的物理模型为例。

        首先在当前的工作空间下建立物理数据模型。

       

        下一步,选择DBMS类型为oracle10g继续。

        在打开的编辑界面中,可以在“调色板”工具箱中选择需要的小工具了。这里我们先拖拽了3个Table。

       

         如果不小心把“调色板”窗口关了,可以在Tools→Customize Toolbars中弹出的窗口中勾选上就可以了。

 

         接下来,开始建表,双击Table_1,在如下的窗口中,编辑表明,注意这里的所有Code命名都规定为大写的英文字母。

       

         再切换到Columns选项卡下,编辑数据列了。发现可定义的数据列属性不够的话可以,点击
来定制列属性,这里我又加上了默认值和描述的属性。列的定义如下:

       

         按照上面的方法,再把角色表建好。

 

        要看主键定义,双击用户表,点击Keys,双击主键那条记录,就可以编辑了。

 

        给主键列建立相应的sequence。

        直接在物理模型上右击建立sequence,建完之后会在模型节点下出现一个sequence节点。再右键新建其他的sequence,建完之后:

       

         在每个表的主键列里引用各个sequence:双击表的主键列,在sequence的编辑位置,直接选择定义好的sequence即可。

 

        建立index,双击Table,点击Indexes选项卡,在里面新建index名称,然后双击,在Columns选项卡中选择Expression为表中指定要建索引的列即可。

 

        接下来,需要建立用户表和角色表之间的关联表了。建法同上。这里主要注意建立外键关联。
         选中“调色板”中的Preference,在从关联表的外键指向主表的主键即可。接下来就是双击编辑外键关联的事了。

 

        最后,我们可以预览生成的sql脚本。右键物理模型编辑网格界面的空白处,选择属性,点击预览选项卡,会看到生成了多余的sql。点击窗口上的工具栏中的“显示生成选项”,在弹出的窗口中勾选不需要生成的选项即可。

 

        最终生成的pdm模型对应的sql脚本如下:

       

alter table FC_USER_ROLE
   drop constraint FK_ROLE_USER_ROLE;

alter table FC_USER_ROLE
   drop constraint FK_USER_USER_ROLE;

drop index IDX_ROLE;

drop table FC_ROLE cascade constraints;

drop index IDX_USER;

drop table FC_USER cascade constraints;

drop table FC_USER_ROLE cascade constraints;

drop sequence SEQ_ROLE_SID;

drop sequence SEQ_USER_ROLE_SID;

drop sequence SEQ_USER_SID;

create sequence SEQ_ROLE_SID
increment by 1
start with 1;

create sequence SEQ_USER_ROLE_SID
increment by 1
start with 1;

create sequence SEQ_USER_SID
increment by 1
start with 1;

/*==============================================================*/
/* Table: FC_ROLE                                               */
/*==============================================================*/
create table FC_ROLE  (
   SID                  NUMBER(10)                      not null,
   ROLE_NAME            VARCHAR2(20)                    not null,
   ROLE_TYPE            VARCHAR2(2)                     not null,
   VALID_FLAG           VARCHAR2(2)                    default 'Y' not null,
   CREATED_BY           VARCHAR@(20)                   default 'admin' not null,
   CREATED_DATE         date                           default sysdate not null,
   UPDATED_BY           VARCHAR2(20)                   default 'admin' not null,
   UPDATED_DATE         date                           default sysdate not null,
   constraint PK_ROLE primary key (SID)
);

comment on table FC_ROLE is
'这是角色表';

/*==============================================================*/
/* Index: IDX_ROLE                                              */
/*==============================================================*/
create index IDX_ROLE on FC_ROLE (
   ROLE_NAME ASC,
   ROLE_TYPE ASC
);

/*==============================================================*/
/* Table: FC_USER                                               */
/*==============================================================*/
create table FC_USER  (
   SID                  NUMBER(10)                      not null,
   USER_NAME            VARCHAR2(20)                    not null,
   PASSWORD             VARCHAR2(20)                    not null,
   EMAIL                VARCHAR2(20)                    not null,
   PROFESSION           VARCHAR2(4),
   VALID_FLAG           VARCHAR2(2)                    default 'Y' not null,
   CREATED_BY           VARCHAR@(20)                   default 'admin' not null,
   CREATED_DATE         date                           default sysdate not null,
   UPDATED_BY           VARCHAR2(20)                   default 'admin' not null,
   UPDATED_DATE         date                           default sysdate not null,
   constraint PK_USER primary key (SID)
);

comment on table FC_USER is
'这个是用户信息表';

/*==============================================================*/
/* Index: IDX_USER                                              */
/*==============================================================*/
create index IDX_USER on FC_USER (
   USER_NAME ASC,
   EMAIL ASC
);

/*==============================================================*/
/* Table: FC_USER_ROLE                                          */
/*==============================================================*/
create table FC_USER_ROLE  (
   SID                  NUMBER(10)                      not null,
   USER_ID              NUMBER(10)                      not null,
   ROLE_ID              NUMBER(10)                      not null,
   VALID_FLAG           VARCHAR2(2)                    default 'Y' not null,
   CREATED_BY           VARCHAR@(20)                   default 'admin' not null,
   CREATED_DATE         date                           default sysdate not null,
   UPDATED_BY           VARCHAR2(20)                   default 'admin' not null,
   UPDATED_DATE         date                           default sysdate not null,
   constraint PK_USER_ROLE primary key (SID)
);

alter table FC_USER_ROLE
   add constraint FK_ROLE_USER_ROLE foreign key (ROLE_ID)
      references FC_ROLE (SID);

alter table FC_USER_ROLE
   add constraint FK_USER_USER_ROLE foreign key (USER_ID)
      references FC_USER (SID);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值