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、清除同步信息

模型中的类和数据库中的表是绑定在一起的,如果想清除绑定信息,选中模型中的类,右键选择“清除同步信息”即可。

为何要有“清除同步信息” 这个功能呢?

如果模型中的类和数据库中的表绑定了,但数据库中的表被删除了,如果再想同步模型到数据表中就会出错,系统会提示找不到数据表,此时可以用“清除同步信息” 功能来清除绑定信息,然后模型同步到数据库中去的时候系统会创建一张新表。

DataUml Design 教程3-模型与数据库同步,布布扣,bubuko.com

时间: 2024-08-10 17:19:48

DataUml Design 教程3-模型与数据库同步的相关文章

DataUml Design 教程7 - 数据库生成模型

DataUml Design支持数据库生成模型,并支持外键关系,能够根据外键自动生成类与类之间的关系. 目前DataUML Design支持MS Server.MY SQL.Oracle和Access数据库,其它数据库待续. DataUml Design支持数据库表生成类图,支持浏览数据库对象功能. 一.浏览数据库对象 1.选择要查看的数据库对象,鼠标右键,点击"连接"菜单.如下图7-1 图7-1 连接成功之后,加载数据库中所有表,如下图7-2 图7-2 2.再选择数据库节点对象,鼠标

DataUml Design 教程1-初识

DataUml Design 是面向开发人员使用的一个永久免费的软件,提高软件的开发效率和代码的规范度.它主要包括三大功能,数据模型.代码生成和UML建模,数据模型功能类似于PowerDesigner软件,代码生成类似于动软的代码生成器. 1.什么是DataUml Design DataUml Design是采用WPF开发的一款软件,该软件功能包括实体类建模.数据库设计.模型与数据库同步.数据库与模型同步.代码生成.文档生成.数据库生成实体模型等功能.以往的软件修改模型之后还得修改数据表结构,需

DataUml Design 教程2-实体建模

DataUml Design (下载)实体建模基于UML类图标准来设计,支持一对一.一对多.多对多关联.模型与开发语言和数据库绑定. 1.新建数据模型 1).选择"数据模型" 节点,点击鼠标右键,在菜单中点击"新建文件夹",在"数据模型"节点下会增加个"文件夹"的子节点.如图2-1. 图 2-1 2).选中新增加的"文件夹"节点,点击鼠标右键,在出现的菜单中点击"重命名",可以给节点重新

DataUml Design 教程5-代码模板介绍(甚于T4模板技术)

DataUml Design 代码模板完全基于C#语言来编写的.不懂写模板的可以请教作者,随时欢迎.下面是一段模板代码,这段代码可以获取一个类结构的所有信息. <#@ template language="C#" HostSpecific="True" #> <# NetUmlTemplateCodeHost host = (NetUmlTemplateCodeHost)(Host); #> 命名空间:<#= host.ClassPro

DataUml Design 教程6-DataUML Design 1.1版本正式发布(支持PD数据模型)

从DataUML Design正式发布到现在有两个月了,由于最近比较忙,到现在才发布1.1版本.以后本人会一直坚持不断完善DataUML Design软件,希望广大程序猿们多多支持. 一.1.1版本新增和改进内容如下 1.支持数据模型元数据导出Word.Excel.PDF文档功能; 2.支持MY SQL.Access数据库; 3.支持加载PowerDesigner数据模型文件; 4.增加数据模型下添加数据包功能; 5.改进新建数据模型时绑定数据库类型功能; 二.生成文档功能 1.打开模型文件如下

DataUml Design 教程4-代码生成

Background Some concepts in Mathematics and Computer Science are simple in one or two dimensions but become more complex when extended to arbitrary dimensions. Consider solving differential equations in several dimensions and analyzing the topology o

python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API

python  Django教程  之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用. 本节的代码:(Django 1.6, Python 2.7 测试环境) 大

mysql数据库主从同步配置教程--数据库同步

背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现.下面把步骤记录一下. 环境和拓扑 操作系统:Centos6.6 X64 mysql版本:5.1.73 Master: 10.6.1.210 Slave:  10.6.1.211 需求: 实现Master上test库同步到Slave上,但是禁止同步该库下的AA表 1.配置Master上的my.cnf #vim  /etc/my.cnf 添加内容到[mysqld]下,设定只同步test 数据库: [mysqld] l

DataUml Design 课程6-DataUML Design 1.1版本号正式宣布(支持PD数据模型)

从DataUML Design正式宣布到现在两个月,因为最近忙,出版到现在为止1.1版本号.稍后我们将始终坚持以良好DataUML Design软件,我希望程序员有很多支持. 一.1.1新的和改进的版本的内容,如以下 1.支持数据模型元数据导出Word.Excel.PDF文档功能; 2.支持MY SQL.Access数据库; 3.支持载入PowerDesigner数据模型文件; 4.添加数据模型下加入数据包功能; 5.改进新建数据模型时绑定数据库类型功能; 二.生成文档功能 1.打开模型文件例如