表结构生成html页面,表结构设计器

表结构设计器EZDML快速上手

2009.11表结构设计器EZDML1.5新版本发布,比以前改进了很多,因此重新写了个介绍。

2015.10已经更新到2.06版本,决定再次整理重写此文档。

2019.10已经2.32版了,再把文档改改吧。

目录

这是一个数据库建表的小软件,可快速的进行数据库表结构设计,建立数据模型。类似大家常用的数据库建模工具如PowerDesigner、ERWIN、ER-Studio和Rational-Rose等的超级精简版。

这一点没什么可说的,就是下载并运行安装程序,按照向导一步步走完。

59822ae68cfa6b8754a1319c6e9c5b1b.png

官方下载地址:http://www.ezdml.com/

305faabba5c1608809fd243695865409.png

由于没有给微软充值,WIN10下可能提示风险,请点“更多信息”,然后选择“仍要运行”。

安装位置建议选择在非系统盘的根目录下,如D:\EZDML,避免文件被系统保护无法写入。

EZDML可以用安装程序安装,但其实它只需要一个exe就可以运行,想要中文的加个ezdml.CHS文件,想要连mysql的加个libmysql.dll,想要连sqlite的加个sqlite3.dll,想要连PostgreSQL的加intl.dll和libpq.dll。连ORACLE稍麻烦点,你得装个oracle客户端,或至少有个instant client,注意必须得是32位的。

请注意:HTML文档较旧,仅适用于Win32版,EZDML for mac64/linux64/win64版已出炉(如下图),最新的文档请下载PDF。

EZDML for mac64:

5e630c3c1943a96e6fc14342a14789b0.png

876d052a2a31ce71d6c97dfe2859b440.png

EZDML for linux64:

3e510483836a223c168d60efb26073aa.png

启动程序,中文系统中会看到以下界面:

604bc7dc46998f607c5008f0817616c4.png

点“确定”打开示例:

60a3d972d2930c90fc8d53a2c026273e.png

英文系统或缺少ezdml.CHS文件时会显示英文界面:

588c3ae706693b85d6c0193c9b3db84a.png

4b09299c1a9300819fcf266700f64ec7.png

本人母语是中文,所以后面说明都是以中文为主。

新建文件,再新建一个表,系统弹出新建界面:

55c0fe3eb9cee30d3d72f5fdd3326159.png

直接点“确定”,可以看到新建表的结果:

e08da750209498ba87a538a6980820cf.png

同一个文件中可以有多个模型,模型图中可以进行平移、缩小、放大、选择对象、拖动等操作。模型图中可以用键盘辅助操作,按加减号放大缩小,方向键平移,R复原,F居中。

左边树形列表中,可选择多个表或字段进行复制、粘贴;直接拖动可以进行排序;在左上方的“过滤条件”中输入内容可查找并列出符合条件的对象。

再建一个表,在字段列表中右键添加全部系统字段:

143fbc2a50fc6ab0086099ad913138b9.png

效果如下:

cb6f22eb5057f408b42e049708b1e716.png

接着,在模型图上选中“数据表1”,再点工具栏上的“连接”:

70bc83fa20aff3e816f9ab7918faadde.png

然后再点击“数据表2”,系统弹出连接界面:

d23901ae5518e43ce7514ea1746e600a.png

设置从表的关联字段为“Rid”,然后点“确定”,即可建立外键关系:

7386d9a062ba43fb84c917fbff667c96.png

在模型图上双击“数据表1”,弹出该表的属性编辑界面,可以添加删除字段,或进行拖动排序等操作,可直接修改表名、逻辑名、注释和字段的物理名、逻辑名、类型、约束:

6e637afd4893c6f13dd8f8219afc4d40.png

也可以双击一个字段,弹出字段属性界面来修改字段:

2d69f95da6b0ccb4cd6b8d537c2a304d.png

至此,我们可保存一下文件以防数据丢失。

顺便说明一下,系统退出时也自动所有数据保存到临时文件目录下,启动时会自动读取并恢复。

上述模型图中,默认显示的是物理逻辑名称视图,可执行“模型|切换物理/逻辑视图”菜单命令或点工具栏按钮切换视图:

物理视图:

c44c1b289180eeeccfc1ed3b32511de5.png

逻辑视图:

30b16fcf418698a2de3d2066f6995cc7.png

默认显示表对象的字段类型是按标准SQL定义,表对象的背景色是浅蓝,可执行“模型|模型选项”进行修改:

87ca0acc3f2bec99ae947958ef0e0f6e.png

691da3fce46c7c79e806c1932d4b8749.png

55d338a6dc00c7e508cb19bb9b8ab684.png

之前物理视图的字段类型默认是标准SQL的类型(如字符串是VARCHAR),如果在模型图选项里修改为ORACLE,则自动显示为ORACLE的类型(字符串是VARCHAR2):

91d227dfbcf0604fb449acf090706903.png

在模型图上选中一个或多个对象(不选则为全部),右键“复制图像”,即可将选中的图形复制到剪贴板,可直接到画笔、WORD等地方粘贴(默认输出格式为位图,如果需要WMF矢量图可按住SHIFT键复制图像)。

e2adb8bf61115e8251c999a624eb7c42.png

在模型图上选中一个或多个对象(不选则为全部),右键“导出”,系统提示指定文件路径和类型:

c792f3423f5865020af889d97ca6b14e.png

49b1e2743ff3b49c73212d8c7aa7b1ce.png

选择EXCEL,指定文件路径和名称后,点“保存”,系统提示:

dd158d82f923aa49d158e8cd2cfff48a.png

点“确定”,则自动打开Excel:

d5066ecf12621a9518d1f09fd0ca1cbf.png

描述字编辑功能是本软件的一大特色,即可以用直接用键盘输入快速完成建表。之所以有这个功能,是我觉得建一个表不需要用鼠标点那么多下中间还键盘输入那么麻烦,直接文本编辑是最快的。有了这个功能后方便多了,基本上我建表时也再不去用那个常规界面了。而且用这个来复制粘贴表结构也很方便。

示范如下:

点新建表,并切到“描述”页:

5bd80cd730735e8ee5b448de6707029c.png

表的描述字中,可以输入简写字母代替数据类型,S,I,F,D,BO,E,BL,O分别代表文本,整数,浮点数,时间,真假,枚举,文件,对象。

输入以下内容,删除或覆盖掉原有文字:

测试订购表

----------

ID编号PK

RID FK

名称S(200) //订购的商品名称

数量I

单价F(10,2)

日期D

注释

4b1126a8aaae31e62d157689cdbfc64d.png

焦点离开输入框时,系统会自动识别并重新生成描述字:

b2e8604fe8ecf585f0a16f299aa30d9b.png

点“确定”,效果如下:

a0c8a51edd2df4d0db39d3b454726c51.png

双击打开属性,结果如下:

8d78b7f8b57b320646b7279113140990.png

在表的属性窗口中,切换到“生成”页,可生成多种代码,包括:

■标准SQL:

e2c1276b41cdd3d861d44b04a7d6e150.png

■ORACLE:

1882a88e8e4dc3c5d84382f26dc687ee.png

■MYSQL:

28d99a26ebf6f77a31a77dbb7c60415c.png

■SQLSERVER:

fcaea05250d86cd193808e52a507ec51.png

■POSTGRESQL:

119d36d00ff84530ca944c6381419896.png

前面几个数据库SQL是固定生成的,后面的代码是脚本生成(可以自行修改脚本):

■C++:

bf270b58b25b34b7275b53599355ffc6.png

■JAVA:

5cfe774361796cb292ae07eb42ee2064.png

即常说的逆向工程了。这里以Microsoft Access附带的“罗斯文商贸”数据库为例(这玩意应该是以前的Access自带的,现在已经找不到了,装了个OFFICE2000才弄到):

首先新建一个文件,执行“模型|导入数据库”菜单命令,系统显示导入界面并提示连接数据库:

5dda74b337c64a5274acdcd509f113ff.png

选择ODBC并连接到MS

Access MDB文件:

f1d5f9e3c872aef72142b533e27c895c.png 

37fef30704c65b04bc84aace4892a5fb.png

系统列出已有表:

cf8f1ac913368cf66fc55014048ab44f.png

其中“自动大小写”的意思是自动对表名和字段名进行首字母大小处理(如USERINFO会处理为UserInfo,系统根据字典文件dict.txt进行处理,如果对处理结果不满意,可修改字典文件增加你需要的词语);“注释转为逻辑名”意思是把表或字段的注释作为逻辑名称导入。

有些系统表(MSys开头的)无法导入,要取消勾选,不然会报错:

1f119cefacda4244fda2f7c6dfad81c7.png

最终导入结果如下:

e4b7ebf07fd79c20620f510ba3547a7f.png

如果对布局不满,可以试试多点几次“重新排列”:

15a00d629cccd0c1f7862c13fa445845.png

在连接了数据库的情况下,双击表查看属性,可以在“数据”页中直接查看数据:

341760054a2c653d4dfc6524a162658c.png

为了说明生成功能,我们先找第一个表修改一下,增加文本字段“销售情况”,并把“产品销售额”由“浮点(19)”改为“浮点(10,2)”:

9b155b1cbb70058437ce86d65a1c4968.png

执行“模型|生成数据库”菜单命令,系统显示生成数据库界面:

27bc6f177273c0295f681b6fee1b3815.png

先不连接数据库时,直接点击“生成SQL”,生成的是创建表的标准SQL:

761b29b5133d492259eccde565403be9.png

连接数据库,再生成一次,这时生成的SQL只是发生变化的表和字段:

c4b28fac17f1c4b0099a5620952fb764.png

其中“产品销售额”由“浮点(19)”变为“浮点(10,2)”。

由于值域变小了,必须重新生成字段。为了防止数据丢失,系统生成的SQL是先把它改名,然后创建新字段,并把数据从旧的字段UPDATE到新字段中,最后删除原有字段的SQL(为防止数据丢失,删除字段的SQL默认以注释的形式生成,可手工修改将注释符去掉)——新版默认直接修改表了,需要改配置才能生成备份字段。

而销售情况是新字段,就直接生成了创建字段的SQL。

可直接修改SQL的内容,点击“执行”可以执行相应SQL生成数据库,也可以把SQL复制到管理工具的SQL窗口中执行。

最后演示下脚本。一般来说大家不需要深入地使用脚本,但了解一点点遍历表和字段的脚本会非常有用。

EZDML支持javascript和pascal脚本。这里以javascript为例。

还是刚才那个罗斯文商贸的模型,假设我要在每个表名的前面加前缀“RS_”,操作如下:

1)执行菜单命令“模型|执行脚本”(在模型图上右键菜单里也有)

2)弹出的脚本窗口里应该是javascript示例脚本,如果不是,请连点几次新建New命令

3)清空原有脚本,输入以下内容:

for(vari=0;i

{

vartb=curModel.tables.getItem(i);

tb.name='RS_'+tb.name;

}

4)按F9执行:

eed10831e916a83fdf59c0eff0f1d2e6.png

当然了,如果要稳妥起见,最好能加个判断,避免多次执行时重复添加:

for(var i=0;

i

{

var tb=curModel.tables.getItem(i);

if(tb.name.indexOf('RS_')!=0)//增加判断避免重复添加tb.name='RS_'+tb.name;

}

5)关闭脚本窗口,回到模型图,按F5刷新:

4d057662b7861a917a33dc170bb50dab.png

6)不好,表名是改了,但外键连接全不见了;别慌,这是因为字段的外键关联的表名没改,我们再写个脚本补救一下

7)再次打开脚本窗口,将脚本修改如下:

for(vari=0;i

8)按F9执行一次,然后关闭脚本窗口,回到模型图,按F5刷新,外键又回来了:

606ed773572c4d55d3753cfa4d721258.png

关于脚本的更多内容,可参考另一个文档《EZDML脚本快速上手》。

OK,恭喜你基本上已经跑完一个流程了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值