PowerDesigner规划数据库&HibernateTools逆向生成java代码

这部分内容对我来说是新知识
PowerDesigner16.5大概700M,下载安装并破解。
_
创建一个model并将DBMS选择为mysql
_
自己规划数据库数据表如下图示例
_
默认PowerDesigner没有comment这个列需要自己手动添加
按ctr+U唤出如下图所示窗口,添加comment列
_
然后
_
_
将下面的代码copy到上面的窗体,运行

Option   Explicit 
ValidationMode   =   True 
InteractiveMode   =   im_Batch

Dim   mdl   '   the   current   model

'   get   the   current   active   model 
Set   mdl   =   ActiveModel 
If   (mdl   Is   Nothing)   Then 
      MsgBox   "There   is   no   current   Model " 
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
Else 
      ProcessFolder   mdl 
End   If

'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view 
'   of   the   current   folder 
Private   sub   ProcessFolder(folder) 
      Dim   Tab   'running     table 
      for   each   Tab   in   folder.tables 
            if   not   tab.isShortcut   then 
                  tab.comment   =   tab.name 
                  Dim   col   '   running   column 
                  for   each   col   in   tab.columns 
                            col.comment=   col.name 
                  next 
            end   if 
      next

      Dim   view   'running   view 
      for   each   view   in   folder.Views 
            if   not   view.isShortcut   then 
                  view.comment   =   view.name 
            end   if 
      next

      '   go   into   the   sub-packages 
      Dim   f   '   running   folder 
      For   Each   f   In   folder.Packages 
            if   not   f.IsShortcut   then 
                  ProcessFolder   f 
            end   if 
      Next 
end   sub

然后把自己创建的一堆model创建为*.sql文件
_
注意文件编码格式,PowerDesigner和phpmyadmin中的格式需要保持一致
_
_
成功导入以后的提示信息
_
效果如下图所示,哈哈开心吧
_
上述内容是是使用工具创建.sql文件并在mysql的图形界面phpmyadmin上创建数据结构的过程,相当于过去的劳碌的工作也变成了文件、变成了.sql文件,变成了一个代码的作品,记录一下没有白干。
按照上述做法,可以通过重复的工作,创建整个数据库结构。但是我们的系统是需要重构数据结构,并数据迁移的,因此我们来讨论一下,数据库,怎么改?

  1. 数据库实体Entity
    旧系统实体太少要扩充,比如,版本的概念。

plm中对版本的实现是这样的1:N设计,物料和带有版本的物料是1:N的关系。
旧系统中,体现物料这个实体的有两个表:材料检验表(物料级别)和检验表(条目级别),其中前者通过Matnr+Version作为物料的唯一标识,后者通过Matnr+序号唯一标识一个条目。
材料检验表:物料1:N版本 (1个物料有N个版本)
检验表:物料1:N版本:N*M条目(1个物料有N个版本,1个版本有M个条目)
现在我们修改一下,将两个实体,扩展为三个实体:
物料表(MARA) 物料号Matnr作为唯一标识。MARA中只存储非常非常少的字段,比如3个字段。matnr ename 和 msn,这个表就是要简洁明了。根据plm中的概念(我听说的)从外部界面无法直接感知MARA,只能感知MARC。
物料版本表(MARC) 与MARA是聚合关系,一对多。这个表中体现版本等信息,目的在于,同一个物料编码的不同版本,对应的物料信息,可能完全不一样。比如换了供应商,比如材质,比如彻底就不一样了,这很有可能。MARA的msn作为MARC的外键,用来建立两个表的关联。MARC中主键为vsn,MARA的msn作为MARC的外键。
条目(ITEMS)
主键为isn,外键为vsn。
据说这样可以防止数据冗余。
上述说法,是错误的,原因是在入库检验系统中,物料是没有版本的。这个是因为入库检验中物料的数据来源是SAP中的MM模块中收货相关的报表数据,而我们公司中SAP系统的物料本身就没有版本。
SAP的物料数据来源是PLM,PLM中的物料有版本,但是升版本就必须改变物料号。既然数据源中物料的版本就是一个象征,那么入库检验的时候,物料版本是没有意义的。

对于入库检验系统,物料的意义就是一个编号,关联了待检单和检验标准。
物料----检验标准----检验条目
物料MARA : mSn(PK) 物料编码(M) 物料信息
检验标准StandardMatnr : sSn(PK) 物料编码(FK M) 版本(M)
检验条目StandardItem : iSn(PK) sSn(FK M)
物料和检验标准的关系 1:N
检验标准和检验条目的关系 N:N*M
目前对数据库的规划如下所示
_
上述内容还要继续修改,字段长度之类的
下面hibernate tools
_
_
_

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值