PowerDesigner工具的基本使用

使用PowerDesigner用来数据库建模:
概念模型---> 物理模型 ---> 生成表 ----> 实体类/映射文件(逆向工程)
概要模型:实体和实体之间的关系
物理模型:表与表之间的关系
注:有些公司会跳过概念模型,直接从物理模型开始,是因为他们已经确定好了数据库,但是我推荐从概要模型开始到时候无论         用哪个数据库都可以随意切换生成物理模型。

注:只要把概念模型设计准确了,无论映射文件多么复杂都不需要你去写了

图一:创建概要模型

 
Entity: 实体

relationship  一般的实体关系都可以使用,如果实体之间的关系指定为多对多,那么在生成pdm时则自动会生成一个以2个实体主键联合起来作为联合主键的一张新的关系表

inheritance 实体之间的继承关系,如:员工——领导

association 关系,如角色与人员存在多对多关系叫做:人员角色,这个关系里面还可能有是否、状态等。

association link 用于连接实体和关系

link/extended dependency 实体或关系的额外信息,信息比较独立;不会产生主外键关系
 

需求:

机构:
部门:一个机构有多个部门
人员:一个部门下有多个人员,一个人员有多个角色 特殊:领导也是人员,有职位信息(继承人员)
角色:一个角色可以被多个人员使用
权限:一个角色有多个权限,一个权限也可以被多个角色使用 

 为上述需求设计出来的概念模型

 


根据概念模型生成物理模型 

 

 

生成了物理模型:就是表和表直接的关系了
 

可以双击进去查看一下建表语句或者设置主键
 

根据物理模型生成建表语句
 

然后拿到crebas.sql中的内容

/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2020/5/3 18:21:21                            */
/*==============================================================*/


drop table if exists r_emp_role;

drop table if exists r_role_privilege;

drop table if exists t_dept;

drop table if exists t_emp;

drop table if exists t_leader;

drop table if exists t_org;

drop table if exists t_privilege;

drop table if exists t_role;

/*==============================================================*/
/* Table: r_emp_role                                            */
/*==============================================================*/
create table r_emp_role
(
   role_id              varchar(32) not null,
   emp_id               varchar(32) not null,
   state                int,
   primary key (role_id, emp_id)
);

/*==============================================================*/
/* Table: r_role_privilege                                      */
/*==============================================================*/
create table r_role_privilege
(
   role_id              varchar(32) not null,
   privilege_id         varchar(32) not null,
   primary key (role_id, privilege_id)
);

/*==============================================================*/
/* Table: t_dept                                                */
/*==============================================================*/
create table t_dept
(
   dept_id              varchar(32) not null,
   org_id               varchar(32) not null,
   name                 varchar(50) not null,
   primary key (dept_id)
);

/*==============================================================*/
/* Table: t_emp                                                 */
/*==============================================================*/
create table t_emp
(
   emp_id               varchar(32) not null,
   dept_id              varchar(32) not null,
   name                 varchar(50) not null,
   primary key (emp_id)
);

/*==============================================================*/
/* Table: t_leader                                              */
/*==============================================================*/
create table t_leader
(
   emp_id               varchar(32) not null,
   dept_id              varchar(32),
   name                 varchar(50) not null,
   position             varchar(50),
   primary key (emp_id)
);

/*==============================================================*/
/* Table: t_org                                                 */
/*==============================================================*/
create table t_org
(
   org_id               varchar(32) not null,
   name                 varchar(50) not null,
   primary key (org_id)
);

/*==============================================================*/
/* Table: t_privilege                                           */
/*==============================================================*/
create table t_privilege
(
   privilege_id         varchar(32) not null,
   name                 varchar(50) not null,
   primary key (privilege_id)
);

/*==============================================================*/
/* Table: t_role                                                */
/*==============================================================*/
create table t_role
(
   role_id              varchar(32) not null,
   name                 varchar(50) not null,
   primary key (role_id)
);

alter table r_emp_role add constraint FK_r_emp_role foreign key (role_id)
      references t_role (role_id) on delete restrict on update restrict;

alter table r_emp_role add constraint FK_r_emp_role2 foreign key (emp_id)
      references t_emp (emp_id) on delete restrict on update restrict;

alter table r_role_privilege add constraint FK_Have foreign key (privilege_id)
      references t_privilege (privilege_id) on delete restrict on update restrict;

alter table r_role_privilege add constraint FK_belong foreign key (role_id)
      references t_role (role_id) on delete restrict on update restrict;

alter table t_dept add constraint FK_r_org_dept foreign key (org_id)
      references t_org (org_id) on delete restrict on update restrict;

alter table t_emp add constraint FK_r_dept_emp foreign key (dept_id)
      references t_dept (dept_id) on delete restrict on update restrict;

alter table t_leader add constraint FK_Inheritance_1 foreign key (emp_id)
      references t_emp (emp_id) on delete restrict on update restrict;

 复制到navicat中,执行完之后生成表,最后在使用逆向工程搞定(hibernate-tools)
 在navicat上面的工具-->命令行界面,然后执行sql就创建表了

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PowerDesigner是一个数据库建模工具,可以帮助用户建立数据库模型并生成SQL语句来创建表格。你可以通过以下步骤使用PowerDesigner: 1. 在PowerDesigner中创建一个新的数据库模型。 2. 在模型中定义实体、属性和关系。你可以使用PowerDesigner提供的工具和功能来创建和编辑这些对象。 3. 生成SQL语句。一旦你完成了模型的设计,你可以使用PowerDesigner生成相应的SQL语句。 4. 执行SQL语句。将生成的SQL语句复制到数据库管理工具中,并执行这些语句来创建表格和其他数据库对象。 除了上述基本步骤,PowerDesigner还提供了其他功能,如项目管理和文档管理。你可以将所有开发的制品存储在PowerDesigner库中,并在项目中维护图形以显示模型和文档之间的依赖关系。 总之,PowerDesigner是一个强大的数据库建模工具,可以帮助用户轻松地设计数据库模型并生成SQL语句来创建表格。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PowerDesigner使用](https://blog.csdn.net/qq_31653405/article/details/123894670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [PowerDesigner基本使用](https://blog.csdn.net/a3562323/article/details/104568818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值