表结构设计器(EZDML)
表结构设计器EZDML1.5新版本发布,比以前介绍的1.2版本改进了很多,因此重新写了个介绍。
表结构设计,即所谓的数据建模,目前大家常用的同类著名工具有PowerDesigner、ERWIN、ER-Studio和Rational-Rose等,本工具无论是功能还是界面都无法跟它们比较,但本工具的好处是简单、快速、免费,有一些特有的功能。我之所以要做这么个工具,有较多的原因,如上述的工具在某些情况下不方便,安装麻烦,占资源多,速度较慢,还要收费。同时我自己也习惯喜欢拿些东西来练手,平时开发过程中经常想要按自己的想法快速生成程序代码,正好又有做过类拟的界面开发,因此几年前开始搞了个简单的程序,慢慢地改啊用啊,后来发现只有自己一个人用似乎太自闭了,就发布出来了。
好了,啰嗦了这么多,接下来分以下几步截图介绍:
1. 下载安装
2. 启动
3. 新建表
4. 外键
5. 修改表和字段属性
6. 视图切换
7. 导出图片
8. 导出EXCEL
9. 描述字编辑
10. 生成代码
11. 导入现有表
12. 生成数据库
13. 大小写处理
1. 下载安装:这一点没什么可说的,就是下载并运行安装程序,按照向导一步步走完。
官方下载地址:http://www.ezdml.com/download/ezdml_setup.exe
2. 启动:启动程序,中文系统中会看到以下界面:
3. 新建表:新建一个表,系统弹出新建界面:
直接点“确定”,可以看到新建表的结果:
切换到模型图:
同一个文件中可以有多个模型,模型图中可以进行平移、缩小、放大、选择对象、拖动等操作。模型图中可以用键盘辅助操作,按加减号放大缩小,方向键平移,R复原,F居中。
左边树形列表中,可选择多个表或字段进行复制、粘贴;直接拖动可以进行排序;在左上方的“过滤条件”中输入内容可查找并列出符合条件的对象。
4. 外键:
再建一个表,勾选全部缺省字段,效果如下:
接着,在模型图上选中“数据表1”,再点工具栏上的“连接”:
然后再点击“数据表2”,系统弹出连接界面:
设置从表的关联字段为“关联编号”,然后点“确定”,即可建立外键关系:
5. 修改表和字段属性:
在模型图上双击“数据表1”,弹出该表的属性编辑界面,可以添加删除字段,或进行拖动排序等操作:
可直接修改表名、逻辑名、注释和字段的物理名、逻辑名、类型、约束:
也可以双击一个字段,弹出字段属性界面来修改字段:
同样的修改一下“数据表2”:
同时修改一下外键字段关联:
最终效果如下:
至此,我们可保存一下文件以防数据丢失。
顺便说明一下,系统退出时也自动所有数据保存到EXE目录下的同名DMH文件,启动时会自动读取并恢复。
6. 视图切换:
上述模型图中,默认显示的是逻辑视图,可执行“模型|切换物理/逻辑视图”菜单命令或点工具栏第二个按钮切换到物理视图:
默认显示表对象的字段类型是按标准SQL定义,表对象的背景色是浅蓝,可执行“模型|颜色和样式”进行修改:
按上述修改结果如下:
7. 导出图片:在模型图上选中一个或多个对象,右键“复制图像”,即可将选中的图形复制到剪贴板,可直接到画笔、WORD等地方粘贴(输出格式为WMF矢量图格式)。
8. 导出EXCEL:
在模型图上选中一个或多个对象,右键“导出到Excel”,系统提示输入文件路径:
指定文件路径和名称后,点“保存”,系统提示:
点“确定”,则自动打开Excel:
9. 描述字编辑:
描述字编辑功能是本软件的一大特色,即可以用直接用键盘输入快速完成建表。之所以有这个功能,是我觉得建一个表不需要用鼠标点那么多下中间还键盘输入那么麻烦,直接文本编辑是最快的。有了这个功能后方便多了,基本上我建表时也再不去用那个常规界面了。而且用这个来复制粘贴表结构也很方便。
示范如下:
点新建表,并切到“描述”页:
表的描述字中,可以输入简写字母代替数据类型,S,I,F,D,BO,E,BL,O分别代表文本,整数,浮点数,时间,真假,枚举,文件,对象。
输入以下内容,删除或覆盖掉原有文字:
焦点离开输入框时,系统会自动识别并重新生成描述字:
点“确定”,效果如下:
双击打开属性,结果如下:
10. 生成代码:
在表的属性窗口中,切换到“生成”页,可生成多种代码,包括:
■标准SQL:
■ORACLE:
■MYSQL:
■C++:
■PASCAL:
■C#:
■JAVA:
11. 导入现有表:
即常说的逆向工程了。导入生成功能可支持ORACLE、MYSQL、SQLSERVER和ODBC数据库。这里我以Microsoft Access附带的“罗斯文商贸”数据库为例:
首先新建一个模型,并重命名为“罗斯文商贸”:
执行“模型|导入数据库”菜单命令,系统显示导入界面并提示连接数据库:
选择ODBC并连接到MS Access MDB文件,系统列出已有表:
其中“自动大小写”的意思是自动对表名和字段名进行首字母大小处理(如USERINFO会处理为UserInfo,系统根据字典文件dict.txt进行处理,如果对处理结果不满意,可修改字典文件增加你需要的词语);“注释转为逻辑名”意思是把表或字段的注释作为逻辑名称导入。
点导入,会提示有些系统表无法导入:
点“确定”跳过,最终结果如下:
12. 生成数据库:
为了说明生成功能,我们先找第一个表修改一下,增加文本字段“销售情况”,并把“产品销售额”由“浮点(19)”改为“浮点(10,2)”:
执行“模型|生成数据库”菜单命令,系统显示生成数据库界面:
先不连接数据库时,直接点击“生成SQL”,生成的是创建表的标准SQL:
连接数据库,再生成一次,这时生成的SQL只是发生变化的表和字段:
其中“产品销售额”由“浮点(19)”变为“浮点(10,2)”,由于值域变小了,必须重新生成字段。为了防止数据丢失,系统生成的SQL是先把它改名,然后创建新字段,并把数据从旧的字段UPDATE到新字段中,最后删除原有字段的SQL(为防止数据丢失,删除字段的SQL默认以注释的形式生成,可手工修改将注释符去掉)。
而销售情况是新字段,就直接生成了创建字段的SQL。
可直接修改SQL的内容,点击“执行”可以执行相应SQL生成数据库,也可以把SQL复制到管理工具的SQL窗口中执行。
13. 大小写处理:
最后说一下大小写处理功能。从数据库导进来的表一般都是全大写或不分大小写的,有时比较难分辨,不利于查看。例如上述部门表生成到ORACLE数据库后,再从数据库导进来时,会变成全大写:
这时可以点左下方的“大小写转换”按钮,弹出菜单如下:
执行“自动大小写”,系统处理的效果如下:
“自动大小写”的意思是自动对表名和字段名进行首字母大小处理。例如USERINFO会处理为UserInfo。处理过程是根据字典文件dict.txt进行的,如果对处理结果不满意,可修改字典文件增加你需要的词语。