[100]PD进行反向工程,生成实体类的结构问题。。

楼主LanseGhost(LanseGhost)2005-12-22 17:59:00 在 软件工程/管理 / Power Designer 提问

用PD进行方向工程,生成部分表,可是生成的结构好像不能理解   -_-!。。  
   
  1、表结构大概是这样的  
  a)   Admin  
  ID   int   PK  
  Name   string  
  Account   string  
   
  b)   AdminModule  
  IdtbAdmin   int FK //指向Admin   的   ID  
  IdtbModule   int   FK //指向   Module   的   ID  
  //#####   上面   2个字段组成联合主键  
  DetailPower   string  
   
  c)Module  
  ID   int   PK  
  Name   string  
  IdtbModuleCategory   int   PK   //指向ModuleCategory   的   ID  
   
  d)  
  ID   int   PK  
  Name   string  
   
  2、PD生成的  
  //账号实体类  
  public   class   Admin  
  {  
        public   long   Id;  
        public   string   Name;  
        public   string   Account;  
        public   AdminModule   AdminModule;  
  }  
  //连接账号和功能模块的实体类  
  public   class   AdminModule  
  {  
        ///   S   I   U   D分别表示Select   Insert   Update   Delete  
        public   string   DetailPower;  
        public   Module[]   FK_Admin_Module_Module;  
        public   Admin[]   FK_Admin_Module_Admin;  
  }  
  //模块实体类  
  public   class   Module  
  {  
        public   int   Id;  
        public   string   Name;  
        public   AdminModule   AdminModule;  
        public   ModuleCategory   FkModuleModuleCategory;  
  }  
  //模块类别实体类  
  public   class   ModuleCategory  
  {  
        public   long   Id;  
        public   string   Name;  
        public   Module[]   FkModuleModuleCategory;  
  }  
   
  3、我觉得应该生成的结构  
  //账号实体类  
  public   class   Admin  
  {  
        public   long   Id;  
        public   string   Name;  
        public   string   Account;  
        //#######下面修改了  
        public   AdminModule[]   AdminModule;  
  }  
  //连接账号和功能模块的实体类  
  public   class   AdminModule  
  {  
        ///   S   I   U   D分别表示Select   Insert   Update   Delete  
        public   string   DetailPower;  
        //下面添加了2个属性  
        public   int   IdtbModule;  
        public   int   IdtbAdmin;  
        //#######下面修改了  
        public   Module   FK_Admin_Module_Module;  
        //######下面修改了  
        public   Admin   FK_Admin_Module_Admin;  
  }  
  //模块实体类  
  public   class   Module  
  {  
        public   int   Id;  
        public   string   Name;  
        //######下面添加了个属性  
        public   int   IDtbModuleCategory  
        //#######下面修改了  
        public   AdminModule[]   AdminModule;  
        public   ModuleCategory   FkModuleModuleCategory;  
  }  
  //模块类别实体类  
  public   class   ModuleCategory  
  {  
        public   long   Id;  
        public   string   Name;  
        public   Module[]   FkModuleModuleCategory;  
  }  
   
  主要问题:  
  1、是连接表那一块,本来来说连接表AdminModule跟Admin应该是m:1关系阿,怎么变成了1:1了?  
  2、那些外键,比如Module类中的IdtbModuleCategory   还有AdminModule类中的IdtbAdmin和IdtbModule都直接被删除了?那写控制类的时候,比如插入一条Module数据?那必须通过访问ModuleCategory类,再获取ID之后插入?就是都要把ModuleCategory实例化?  
  3、还有就是,如果AdminModule表中的DetailPower字段去掉,那么PD在生成的OOM图中,根本就没有生成AdminModule的类?直接在Admin和Module类中体现多对多的关系。那么以后要插入AdminModule表的记录应该怎么插入呢?控制类应该怎么写?  
  4、如果AdminModule中的IdtbAdmin和IdtbModule没有被设计成联合主键,那么生成的关系图就跟我下面   自认为   的差不多,就是类里头少了外键的那些属性。  
   
  本人初学面向对象编程,看了点资料,一下问了这么多问题,希望大家不吝赐教,帮帮忙,^_^  
  问题点数:100、回复次数:5Top

1 楼LanseGhost(LanseGhost)回复于 2005-12-22 18:52:02 得分 0

自己顶~~Top

2 楼LanseGhost(LanseGhost)回复于 2005-12-22 20:57:02 得分 0

继续等待~~~Top

3 楼LanseGhost(LanseGhost)回复于 2005-12-23 08:39:10 得分 0

顶~~Top

4 楼zlp321002(Over The Rainbow)回复于 2005-12-29 08:41:47 得分 0

--用工具生成的只能是框架代码,具体实现还是要写代码的。Top

5 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2006-01-24 22:43:13 得分 0

这个生成以后基本是这个样子,如果要满足自己的需要,就要自己修改模板,看你的好像是java脚本,修改:  
   
  tools->resource->object   language->java   修改属性  
   
  这个过程比较麻烦的  
   
   
  申请版主中,请支持  
  怎么很少有用pd做oom的,还有写script的?  
   
   
   
   
   
  申请版主中,请支持  
  怎么很少有用pd做oom的,还有写script的?Top

你可能对以下的问题也比较感兴趣....