EZDML 数据建模

超轻量级的免费数据建模工具

0%

EZDML常见问题

EZDML这几个字是什么意思

EZDML是一款国产免费的轻量级数据建模工具,具有轻巧、快速、简便而功能强大的特点,可轻松地进行数据库表结构设计,建立界面数据模型,支持通过自定义脚本模板生成测试数据、界面原型和前后端代码文件。

EZDML即EzDML,是Easy Data Model Language的意思,官方读法是“一贼滴嗯嗷”(easy-D-M-L),原先也叫表结构设计器。大概是因为有段时间UML(统一模型语言)很火,然后我觉得描述字也勉强算是一种简易的“语言”,于是取名DML,并加上easy前缀。

如何快速上手

参见《EZDML快速上手》。

有绿色版吗

没有专门做绿色版,不过可以自己做,把安装后的文件拷出来就是绿色版了。

Windows下32位64位该用哪个版本

64位吧,跟上潮流。32位只适合少部分老用户。

为什么字段的数据类型那么少

本工具以简单设计为主,所以把常用的数据类型归纳为以下几种了:文本、整数、浮点数、时间、真假、枚举、文件、对象。比如字符串VARCHAR、VARCHAR2、NVARCHAR、CLOB(长度超过数据库限制时会自动转用CLOB),在我看来都是一个类型,只是换了个马甲而已。这样做的好处,主要是跟编写代码比较接近,另一个是跨数据库时比较方便。

大部分情况下我们会经常使用一种基本物理类型,比如常用varchar对应String,这个varchar就可以默认预先设置好。偶尔需要区分多个类型时,你可以在选定基本逻辑类型后,在字段的类型名称上做补充,比如基本类型选String,类型名称写NCHAR。

另外还有列表、函数、事件几个类型,是为方便设计生成代码而增加的。

如果你的场景经常要区分数据库的各种物理数据类型,那EZDML可能不是最好的选择。

参见《关于EZDML的数据类型》。

默认的物理类型不是我要的怎么办

如果只是个别字段,可以直接修改字段属性,设置字段的类型名称。类型名称默认为空,为空时使用默认数据类型名称。

如果大多数字段都要改,可以在设置中定义程序默认的物理类型。参见《关于EZDML的数据类型》。

如何定义CLOB长字符串类型

上面说了,CLOB属于字符串,只要定义一个嚣张点的长度,超过普通VARCAHR的限制即可。简单说,定义为String(99999)就肯定可以了,没有哪个数据库的varchar会超过99999的。

如何定义BIGINT长字符串类型

数据类型还是选择整数(Integer),对于SQLSERVER、POSTGRESQL和MYSQL,可通过长度定义子类型:

  • 小于等于4:tinyint
  • 5、6:smallint
  • 7、8:midiumint(MYSQL),integer(PQ)、int(其它)
  • 9、10、11:integer(PQ)、int(其它)
  • 12及以上:bigint

我还需要其它的数据类型怎么办

逻辑类型(如浮点数)基本上都是有的,但物理数据类型(如CURRENCY,DECIMAL)可能没有。解决办法有两个:
一是在每一个字段的属性中指定类型名称;另一个办法是在设置中增加自定义类型。参见《关于EZDML的数据类型》。
需要说明的是,自定义类型本质上也是修改字段的类型名称,生成SQL时会再替换为最终的类型。

描述字是干啥用的

就是只用键盘输入所有表字段信息来创建/维护表。先输入表名,华丽的分隔线,然后输入字段,一行一个。毕竟,表对象的大部分信息都可以用键盘依次敲出来。

外键连接如何设置成一对一的

默认就是一对多,不支持直接设置成一对一。不过,如果你把从表的关联字段加一个唯一索引(或者设置为主键),则EZDML能自动识别它是一对一,在画图时会画成一对一。

是否支持多字段的组合索引、组合外键、组合主键、触发器等约束

不支持,本工具以简单设计为主,复杂的数据库设计是不支持的(不过,好像组合主键是支持的;又不过,组合索引后来也支持了)

EZDML表面上是数据库表设计工具,可实际上为数据库服务的并不深入,更多是为了搞代码、脚本、文档之类的不务正业的东东。如果你想用它来维护触发器、存储过程、表空间、同义词、分区之类的,那你很可能要失望了,可能你想要的功能没有,你不想要的、没什么暖用的东西却很多。

是否支持分区

不支持,本工具以简单设计为主,太复杂的功能实现不了。

多个模型图的表之间有什么关系

同一个文件中,名称相同的表,在多个模型图中是同步的,修改其中任一个,都会同步影响其它模型中的同名表。比如user表在“用户权限”、“商品订单”两个模型图都存在,当修改“用户权限”中的user表,比如增加“爱好 varchar(200)”字段时,“商品订单”中的user表也会同时增加“爱好 varchar(200)”字段。

如何快速复制表名/字段名

左边目录树:选中任何对象,按CTRL+E复制名称(复制高亮内容,显示什么就复制什么,如果有逻辑名,也会一起复制)。

右边模型图:

  • 选中整个表,不选中表名和字段名,这时按CTRL+E会复制出一个select语句

  • 选中表名,按CTRL+E复制表名(复制高亮内容,显示什么就复制什么,如果有逻辑名,也会一起复制,切换物理/逻辑视图可以控制复制的内容,下同)

  • 选中字段,按CTRL+E复制字段名

如何快速复制各种SQL

单表的话,建议在表属性的“生成”页中找到各种数据库的生成SQL进行复制:

批量复制的话,可在模型图中选中多个表然后在右键菜单中执行“批量复制”子菜单下的命令:

注间这些子菜单复制的SQL类型,跟模型图属性的的数据库类型相关:

如何获取多个模型的所有表

工具菜单下有一个叫“Add all tables”的自定义工具脚本,它可以将所有模型中的表对象添加到当前模型(会自动去重,每个表只加一次)。

那个大小写转换是干什么用的

顾名思义就是大小写的互转了。从数据库导进来的表一般都是全大写或不分大小写的,有时比较难分辨,不利于查看。例如商家表生成到ORACLE数据库后,再从数据库导进来时,会变成全大写:

很不好看,这时可以点左下方的“大小写转换”按钮,弹出菜单如下:

执行“自动大小写”,系统处理的效果如下:

“自动大小写”的意思是自动对表名和字段名进行首字母大小写分词处理。例如MEMBERRANK会处理为MemberRank。处理过程是根据字典文件dict.txt和MyDict.txt进行简单的匹配,效果并不能做到100%准确,如果对处理结果不满意,可修改字典文件增加你需要的词语。

如何从注释中提取逻辑名

有几种办法:

  1. 从数据库导入时,勾选“注释转为逻辑名”

  2. 双击表,弹出表属性对话框,点左下角的“大小写转换”,选择“注释转为逻辑名”

  3. 在左边目录对上,选择一个或多个表(选字段也是可以的),然后在右键菜单中执行“大小写转换|注释转为逻辑名”。

以上1-3,请注意提取的算法是我随便写的,可能不一定合你意,那也没关系,你还可以出大招:

  1. 最高境界:自己写脚本处理,参见《EZDML脚本参考》

鼠标键盘操作有没什么秘诀

模型图中可以进行平移、缩小、放大、选择对象、拖动等操作。模型图中可以用键盘鼠标进行以下操作:

  • 操作前,请确认输入焦点在模型图上,可用鼠标点击模型图获取焦点

  • 按加减号放大缩小,上下左右方向键平移

  • 鼠标滚轮默认是上下滚动,按住SHIFT键则左右滚动,按住CTRL键则放大缩小

  • 默认为选择模式,这时可用鼠标左键选择和拖动对象,拖动空白处则平移视图(2.4版后),按住CTRL键拉框选择,按CTRL+A则选择全部;选中对象后可用鼠标左键拖动其到所需位置

  • 任何时候按住ALT键,即可用鼠标左键拖动视图进行平移操作,此时也可以双击鼠标左键进行快捷缩放(双击一次“显示全图”,再次双击则“缩放至100%”)

  • 在对象上双击鼠标左键可查看编辑其属性:选中表则显示表属性,如果同时选中了字段,则会在属性中定位到字段(注意:如果视图缩得较小,双击时会先执行“缩放至100%”,如仍要显示属性,可按住CTRL键);如果什么都没选中,则进行快捷缩放(双击一次“显示全图”,再次双击则“缩放至100%”)

  • 按R复原视图,按F为缩放至最佳大小;如果选中了对象,则这两个操作会围绕选中对象进行

  • 按Z进入放大模式,按X进入缩小模式,按A进入缩放模式(从左向右拉框为放大,从右向左为全图),按S恢复选择模式

  • 按F6重置连接,按CTRL+E复制选中对象的文字,CTRL+1显示对象属性

按F7切换逻辑/物理视图,F8切换关系缩略图,F9切换模型和属性视图,F11切换目录树显示/隐藏,F12切换全屏。

按F4可以快速切换全图和复原;如果选中了对象,则复原视图时会将中心切到选中对象。这个F4是全局的,可以在左边树中使用,不需要获取焦点,所以特别说明一下。

左边树形列表中,可按住SHIFT、CTRL键并用鼠标单击来选择多个表或字段进行复制、粘贴;直接拖动可以进行排序。

按Alt+D可将输入焦点切换到左上方的“过滤条件”中,输入内容可查找并列出符合条件的对象,按回车切到目录树,按ESC退出。

如何在用鼠标矩形拉框选择

默认拖动空白处是平移视图,按住CTRL键可拉框选择。

如何只选中表而不选择线

接上一条,拉框开始后,按住鼠标左键不放,松开CTRL键,再按住SHIFT键就可以只选择表不选线了。

导出WORD文档格式我不喜欢,能改不

理论上是可以的,WORD、HTML、MHT都可以改,实际上行不行还得看个人。WORD文档其实是MHT(MIME)格式,是由脚本生成的。

Templates目录下有下export_doc_html.ps_的脚本文件,它可以生成HTML和MHT两种格式,导出WORD是用了其中的MHT格式。你只要看懂了它,基本上就可以随意改了。也不难看懂的,信我没错,除了<% %>里的脚本,剩下的全是HTML。原始代码是我新建一个WORD文档后另存HTML搞出来的。

导出的EXCEL格式我也想改,要怎么弄

导出EXCEL也是脚本生成html了,修改export_xls_LANG.ps_脚本即可。

如何配置外部工具

往那个自定义工具目录塞文件、塞程序、塞脚本就是了。

EZDML是用什么开发的

最开始是Delphi,现在是Lazarus,开发语言是Pascal。

EZDML会开源吗

暂时不全开。目前大部分界面和核心类定义代码已经上传到gitee,但仍保留了一部分绘图和脚本相关的代码未提供。

还其它问题如何联系

参见《关于》。