不良市民:Struts项目手把手(二)——合同管理系统

目标:使用PowerDesigner12,实现数据库从逻辑模型到物理模型的设计,最后生成sql脚本。
一、创建概念模型
        打开PowerDesigner12后,File—>New,弹出:


       填写Model Name:ContractManage。点击确定。

二、设计逻辑模型。
(一)Domains的创建。Domains是用户自定义的数据类型,如下图。

按照,下表内容建立新的Domains:

Domains名称CodeData TypeLength
DDDATE/
VA5VA5D(是否在显示)5
VA15VA15VARIABLE CHARACTERS(15)15
VA50VA50VARIABLE CHARACTERS(50)50
VA255VA255VARIABLE CHARACTERS(255)255
VA2000VA2000VARIABLE CHARACTERS(2000)2000

(二)实体的创建。
      使用palette面板里的entity对象,在白板上新建对象。
       1、首先创建实体名:


2、新建属性:点击Attribute选项卡。

3、设置主标识符。点击Identifiers选项卡。

        通过以上步骤,我们新建3个实体。
        实体甲方:
       (1)General选项卡      Name:甲方      Code:PartyA
       (2)Attributes选项卡     M(是否为空)P(是否为主标识符)D(是否在显示)

NameCodeData TypeDomainMPD
甲方编号PartyAIDVARIABLE CHARACTERS(15)VA15VVV
甲方名称PartyANameVARIABLE CHARACTERS(50)VA50  V

       (3)Identifiers选项卡  P(是否为主标识符)

NameCodeP
IDIDV

        实体甲方代理人:

       (1)General选项卡      Name:甲方代理人      Code:PartyAAgent
       (2)Attributes选项卡     M(是否为空)P(是否为主标识符)D(是否在显示)

NameCodeData TypeDomainMPD
甲方代理人编号PartyAAgentIDVARIABLE CHARACTERS(15)VA15VVV
甲方代理人名称PartyAAgentNameVARIABLE CHARACTERS(50)VA50  V
      (3)Identifiers选项卡  P(是否为主标识符)

NameCodeP
IDIDV

        实体合同:
        (1)General选项卡      Name:合同      Code:Contract
       (2)Attributes选项卡     M(是否为空)P(是否为主标识符)D(是否在显示)

NameCodeData TypeDomainMPD
合同编号ContractIDVARIABLE CHARACTERS(15)VA15VVV
签约地点PlaceVARIABLE CHARACTERS(50)VA50  V
乙方PartyBVARIABLE CHARACTERS(50)VA50  V
乙方代理人PartyBAgentVARIABLE CHARACTERS(5)VA5  V
甲方签约时间PartyASignDateDateD  V
乙方签约时间PartyBSignDateDateD  V
项目名称ProjectNameVARIABLE CHARACTERS(255)VA255  V
合同内容ContractContentVARIABLE CHARACTERS(2000)VA2000   V

         (3)Identifiers选项卡  P(是否为主标识符)

NameCodeP
IDIDV

(三)创建关系。

        使用Palette面板中的Relationship,如图,分别联系甲方和合同(从甲方连到合同),甲方代理人和合同(从甲方代理人连到合同):

         最后得到下列实体关系图:

三、将逻辑模式转换成物理模型。
选择Tools—>Generate Physical Data Model,生成物理模型。

生成如下物理模型,如下:

四、将物理模型转换成sql脚本。
        先选中物理模型ContractManage下的ContractManage。选择DataBase—>Generate DataBase

生成ContractManage.sql脚本如下:

/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2008-3-30 19:20:20                           */
/*==============================================================*/

drop   table   if   exists  Contract;
drop   table   if   exists  PartyA;
drop   table   if   exists  PartyAAgent;

/*==============================================================*/
/* Table: Contract                                              */
/*==============================================================*/
create   table  Contract
(
   ContractID           
varchar ( 15 not   null ,
   PartyAAgentID        
varchar ( 15 ),
   PartyAID             
varchar ( 15 ),
   Place                
varchar ( 50 ),
   PartyB               
varchar ( 50 ),
   PartyBAgent          
varchar ( 5 ),
   PartyASignDate       date,
   PartyBSignDate       date,
   ProjectName          
varchar ( 255 ),
   ContractContent      
varchar ( 2000 ),
   
primary   key  (ContractID)
);

/*==============================================================*/
/* Table: PartyA                                                */
/*==============================================================*/
create   table  PartyA
(
   PartyAID             
varchar ( 15 not   null ,
   PartyAName           
varchar ( 50 ),
   
primary   key  (PartyAID)
);

/*==============================================================*/
/* Table: PartyAAgent                                           */
/*==============================================================*/
create   table  PartyAAgent
(
   PartyAAgentID        
varchar ( 15 not   null ,
   PartyAAgentName      
varchar ( 50 ),
   
primary   key  (PartyAAgentID)
);

alter   table  Contract  add   constraint  FK_Relationship_1  foreign   key  (PartyAID)
      
references  PartyA (PartyAID)  on   delete   restrict   on   update   restrict ;

alter   table  Contract  add   constraint  FK_Relationship_2  foreign   key  (PartyAAgentID)
      
references  PartyAAgent (PartyAAgentID)  on   delete   restrict   on   update   restrict ;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值