DataUml Design 教程3-模型与数据库同步

     上一节我们已经建立好了数据模型,那么怎么让数据模型和数据库进行同步呢?模型同步到数据库非常简单,只需要模型绑定到数据库即可。DataUml Design目前支持和Oracle与MS Server数据库进行同步。
    模型绑定到数据库这里就不再讲解了,不懂的请看上一节内容。
     1、同步数据表(模型同步到数据库)
          同步原则:①先同步主表,后同步子表。②数据库中表不存在则创建新表,表存在则修改表。
          这里我们同步顺序为:供应商信息->采购订单->采购明细
          1)、选择“供应商信息”单击右键选择“同步数据表(保存到数据库)”如图3-1,然后弹出提示对话框“同步到数据表之后不可撤消,是否要同步到数据表?”,选择“是”。数据表同步到数据库中。
图3-1 

         以下是同步数据表的日志
         供应商信息表
                [供应商信息]:开始同步到数据表
                [供应商信息]:创建表"Suppliers"成功
                [供应商信息]:添加表"Suppliers"备注成功
                [供应商信息]:创建主键"PK_Suppliers(ID)"成功
                [供应商信息]:同步到数据表结束
        
采购订单表
                [采购订单]:开始同步到数据表
                [采购订单]:创建表"PurchaseOrder"成功
                [采购订单]:添加表"PurchaseOrder"备注成功
                [采购订单]:添加字段"ID"备注成功
                [采购订单]:添加字段"StorageType"备注成功
                [采购订单]:添加字段"OrderID"备注成功
                [采购订单]:添加字段"AgentsOrderNo"备注成功
                [采购订单]:添加字段"OrderTime"备注成功
                [采购订单]:添加字段"SuppliersCode"备注成功
                [采购订单]:添加字段"OrderState "备注成功
                [采购订单]:添加字段"Buyer"备注成功
                [采购订单]:添加字段"OperationTime"备注成功
                [采购订单]:添加字段"OperationUser"备注成功
                [采购订单]:创建主键"PK_PurchaseOrder(ID)"成功
                [采购订单]:创建唯一键"UK_OrderNo(OrderID)"成功
                [采购订单]:创建外键"fk_Suppliers_PurchaseOrder(ID)->Suppliers(ID);"成功
                [采购订单]:同步到数据表结束
       采购明细表
                [采购单明细]:同步到数据表结束
                [采购单明细]:开始同步到数据表
                [采购单明细]:创建表"PurchaseOrderItem"成功
                [采购单明细]:添加表"PurchaseOrderItem"备注成功
                [采购单明细]:创建主键"PK_PurchaseOrderItem(ID)"成功
                [采购单明细]:创建外键"fk_Order_Item(OrderID)->PurchaseOrder(OrderID);"成功
                [采购单明细]:同步到数据表结束
          同步完成之后,数据模型会记录和数据表绑定的信息。
          大家可以用PLSQL看看数据库中是否已创建了表。如下图

图为“采购订单表”
 
图为“采购订单”的键信息 

          模型中类和数据表绑定之后,选中类右键菜单中“清除同步信息”和“检查同步状态”变成可用。如图3-2


图3-2
         “ 检查同步状态"菜单后面有个表名,说明类和数据表进行绑定了。
           如果修改了模型中类的属性,只需选择类右键“同步数据表” 菜单即可。DataUml Design自动会用SQL语句来更新数据表结构。

    2、检查同步状态
           下面以“采购订单”为例: 
          1)、模型新增个字段
                   在“采购订单”中新增一个字段“备注”,然后选中类,单击鼠标右键选择“检查同步状态”菜单,出现如下提示:
                        [采购订单]:开始检查
                        [采购订单]:数据表中不存在字段【Remark】
                        [采购订单]:检查结束
                   说明数据表中不存在字段Remark
          2)、模型修改字段属性
                   在“采购订单”中修改字段“采购员”的长度为51、默认值为gust、备注为“采购员备注”,然后单击鼠标右键选择“检查同步状态”菜单,出现如下提示:
                     [采购订单]:开始检查
                     [采购订单]:数据表中字段【Buyer】的长度与模型的字段长度不一致
                     [采购订单]:数据表中字段【Buyer】备注与模型备注不一致
                     [采购订单]:数据表中字段【Buyer】的默认值与模型的默认值不一致
                     [采购订单]:数据表中不存在字段【Remark】
                     [
采购订单]:检查结束
          3)、模型删除一个字段
                   在“采购订单”中删除“代理订单号”字段,然后单击鼠标右键选择“检查同步状态”菜单,出现如下提示:
                    [采购订单]:开始检查
                    [采购订单]:模型中不存在属性为【AGENTSORDERNO】的字段
                    [采购订单]:数据表中字段【Buyer】的长度与模型的字段长度不一致
                    [采购订单]:数据表中字段【Buyer】备注与模型备注不一致
                    [采购订单]:数据表中字段【Buyer】的默认值与模型的默认值不一致
                    [采购订单]:数据表中不存在字段【Remark】
                    [采购订单]:检查结束
          4)、模型中增加表唯一键
                   在“采购订单”中添加唯一键名UK_test,然后单击鼠标右键选择“检查同步状态”菜单,出现如下提示:
                    [采购订单]:开始检查
                    [采购订单]:模型中不存在属性为【AGENTSORDERNO】的字段
                    [采购订单]:数据表中字段【Buyer】的长度与模型的字段长度不一致
                    [采购订单]:数据表中字段【Buyer】备注与模型备注不一致
                    [采购订单]:数据表中字段【Buyer】的默认值与模型的默认值不一致
                    [采购订单]:数据表中不存在字段【Remark】
                    [采购订单]:数据表唯一键信息与模型唯一键信息不一致
                    [采购订单]:检查结束

                 修改模型中“采购订单”结构时,并没有同时修改数据表结构,为了让他们同步,这时可以利用“同步数据表”操作来完成,具体操作如下:
                 选中修改了的类结构,单击鼠标右键选择“同步数据表”菜单,出现如下提示:
                    [采购订单]:开始同步到数据表
                    [采购订单]:更新表字段"Buyer"数据类型和长度nvarchar2(51)成功
                    [采购订单]:更新表字段"Buyer"的备注"采购员备注"成功

                    [采购订单]:更新表字段"Buyer"默认值gust成功
                    [采购订单]:添加表字段"Remark"成功

                    [采购订单]:表主键:PK_PURCHASEORDER(ID)
                    [采购订单]:表唯一键:UK_ORDERNO(ORDERID);
                    [采购订单]:创建唯一键"UK_test"成功
                    [采购订单]:表的外键信息为:[PurchaseOrder(ID)->SUPPLIERS(ID)]
                    [采购订单]:数据表列"AGENTSORDERNO"与模型不匹配,使用高级操作可删除不匹配的列 

          "同步数据表"操作不会删除数据表中的列,要删除数据表中的列请使用“同步高级操作”功能。
    3、同步高级操作
          同步高级操作会删除数据表中的列,不管数据表中有没有数据,都会删除,还可以删除数据表的所有外键。如下图3-3 


图3-3 

         我们还是以“采购订单”为例,前面操作中删除了“采购订单”结构中的“代理订单号”,而数据表中存在“代理订单号”这一列,这时我们可以用高级操作来完成它。
         选中“采购订单”,鼠标右键菜单中单击“同步数据高级操作”的子菜单“删除多余数据列”,提示信息如下:
            [采购订单]:同步到数据表结束
            [采购订单]:删除数据列"AGENTSORDERNO"成功
            [采购订单]:删除数据列完毕

          此时数据库中“采购订单表”的数据列“代理订单号”也删除了,我们可以用“检查同步状态”功能看看模型和数据表是否信息一致。
    4、同步模型(数据库同步到模型)
         当模型中的类和数据库中的表绑定了的时候,如果你不知道模型中的类结构是否最新的信息,想要以数据库中的表结构信息为准,这时你可以把数据表中的结构同步到模型中的类当中去。
         同步模型分为两种方式:完全同步和追加同步。如图:3-4
         ①完全同步:以数据库中的表结构为准,完全更新到模型中的类结构当中去。此时模型类和数据表结构信息完全一致。如果模型中的类结构字段和数据库中表的字段不匹配,会自动删除模型类中不匹配的字段。
         ②追加同步:以数据库中的表结构为准,完全更新到模型中的类结构当中去。此时模型类和数据表结构信息可以不一致,模型中类的结构信息会大于或等于数据表结构的信息。如果模型中的类结构字段和数据库中表的字段不匹配,系统不会删除模型类中不匹配的字段,只会以追加的方式更新或添加新的信息。


图3-4 

         下面我们来举个例子
          1)、删除模型中“供应商信息”类。
          2)、添加一个新类到模型中。如图3-5


图3-5 

          3)、选中新添加的类,鼠标右键选择“同小模型...”中的子菜单“完全同步”,此时会弹出一个对话框,让你选择一张表,如图3-6,这里我们选择Suppliers(供应商信息)表。


图3-6 

          4)、点击“确定”之后,可以看到同步过来的数据表结构信息,如图3-7


图3-7 

    5、清除同步信息
          模型中的类和数据库中的表是绑定在一起的,如果想清除绑定信息,选中模型中的类,右键选择“清除同步信息”即可。
          为何要有“清除同步信息” 这个功能呢?
          如果模型中的类和数据库中的表绑定了,但数据库中的表被删除了,如果再想同步模型到数据表中就会出错,系统会提示找不到数据表,此时可以用“清除同步信息” 功能来清除绑定信息,然后模型同步到数据库中去的时候系统会创建一张新表。

 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DataUml Design 是面向开发人员使用的一个永久免费的软件,提高软件的开发效率和代码的规范度。它主要包括三大功能,数据模型代码生成UML建模,数据模型功能类似于PowerDesigner软件,代码生成类似于动软的代码生成器. DataUml Design是采用WPF开发的一款软件,该软件功能包括实体类建模、数据库设计、模型数据库同步数据库模型同步代码生成、文档生成、数据库生成实体模型等功能。以往的软件修改模型之后还得修改数据表结构,需要同步修改两个地方,而DataUml Design解决了该问题, 软件开发人员只需要修改模型结构或数据表结构,然后利用软件的同步功能即可达到模型与数据表结构的一致性。方便开发人员轻轻松松地管理自己的模型数据库DataUml Design的自定义模板采用微软的4T技术,开发人员可以配置自己的代码模板。如实体层、数据访问层和UI层都可以用模板来配置,由模型一键生成代码,实现模型与代码的一致性。 DataUml Design支持数据的导入与导出,可以导出模型结构的文档,也支持其实数据导入生成数据模型(下一版本将实现)。 DataUml Design目前只支持MS Server和Oracle数据库、C#和Java语言,其它数据库和语言下一版本将实现。 DataUml Design功能特点 1)、模型设计 DataUml Desing数据建模采 用图形化设计,基于UML标准,遵循UML类图概念。模型中的类和数据库中的表对应,类的成员分为字段、属性、事件等,类的属性对应数据表中的字段。类的 属性成员的属性又包括数据表中字段的所有属性。类与类的关联关系包括单向关联、双向关联、组合、聚合。关联关系与数据表中的外键相对应。关联关系也具有属 性。 2)、模型数据库同步 数据模型数据库绑定,设计模型之后可以一键把模型提交到绑定的数据库中,如果数据库中表存在,则会更新数据表结构,如果数据库中代不存在,则会创建一张新表,用户不需要关心如何数据库类型,DataUml Design会帮你完成所有功能。 如果数据表中增加了字段或修改了某个字段,需模型中需没有更改,只需把数据表同步模型即可,不需要开发人员对照数据表结构来修改模型结构。 3)、代码生成 DataUml Desing采用代码模板来生成代码,软件开发人员可以根据自己的要求来设计代码模板。代码模板可以生成任务语言的代码。软件开发人员可以用代码模板获取到类的所有属性以及关联的类。 软件下载地址: www.netuml.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值