使用PHP制作MYSQL数据结构字典

使用PHP制作MYSQL数据结构字典

MYSQL数据结构和数据字典之间的同步是件很头疼的事。很早之前就下载了一份Joesen & Korsen用PHP写的Database Structure Export,虽然用起来感觉不错,但还是不完善,例如无法提取表和字段注释、不能反映索引关系等。

这次做一个新的应用程序开发,规划表后制作数据字典又头疼了一次。又google又baidu了半天,没能找到一个合适的制作工作。且发现MYSQL的字典工具好少,倒是MSSQL的很多。来回折腾了几个小时,终于决定自己动手做一个。因为之前也试图修改过Joesen & Korsen写的这个代码,当时好像是无法调取注释,没进行下去。所以这次一开始,试图从导出的SQL语句下手,利用正则提取,然后生成字典文件。不过看着导出的SQL语句,再看看PHPMYADMIN,放弃了这个念头。

不得已之下,想到来看看PHPMYADMIN的读取语句,果然有解。其实读取表和字段的注释很简单,下面的这两个语句就可以解决:

SELECT TABLE_NAME, TABLE_COMMENT FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` IN ('database');

show full fields from table_name; 我在Joesen & Korsen写的Database Structure Export基础上做了如下改动:

1、文件编码、数据库链接、导出文件编码统一设置为utf8,gbk编码的数据库也能正常显示和输出

2、修改了读取表信息的语句,提取表和字段注释

3、添加了表默认、额外值显示

4、增加表索引关系显示

5、汉化等其他细小调整