实用的在线预览数据字典的工具(php编写)

阅读更多
前言

无论是刚接手新项目,或者是维护老项目,有一个方便的数据字典可用是最棒哒!
本文是我为了方便使用数据字典而写的代码。
代码无版权,随便使用。

拷贝代码后,只需修改数据库名,主机,用户名,密码,开箱即用。
同时,代码还可以保留自定义的数据字典部分,方便实用。
妈妈再也不用担心我没有好用的数据字典工具了!

源码
全部代码如下,只有一个文件,放在可访问的web目录下即可,附件里也有源码:
tool.php
mysqli = new mysqli('127.0.0.1', 'root', '', self::dbname);
		$sql="set names utf8";
		$this->mysqli->query($sql);
		
	}
	
    /**
     * 数据字典生成器
     * 
     * 可以从数据库中直接读出数据字典并直接呈现,只需配置好数据库连接。
     * 还可以修改数据库中的内容(或添加上原来数据字典里没有的内容)。
     * 
     * 代码可以随意使用和修改。
     * 
     * 2017 12 23
     * 
     * @author yyy 
     */
    public function db_dict ( )
    {
      
        $db_name = self::dbname; // 这是数据库名
                             
        // 先查出表的元数据,和字段的元数据。
        $sql = "
select table_name,table_comment from information_schema.tables
where table_schema='{$db_name}'
order by table_name asc
";
        $table_arr = $this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC);
       // var_dump($table_arr);return;
        $sql = "
SELECT
    T.TABLE_NAME AS 'table_name',
    T. ENGINE AS 'engine',
    C.COLUMN_NAME AS 'column_name',
    C.COLUMN_TYPE AS 'column_type',
    C.COLUMN_COMMENT AS 'column_comment'
FROM
    information_schema.COLUMNS C
INNER JOIN information_schema.TABLES T ON C.TABLE_SCHEMA = T.TABLE_SCHEMA
AND C.TABLE_NAME = T.TABLE_NAME
WHERE
    T.TABLE_SCHEMA = '{$db_name}'
";
        $column_arr = $this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC);
        $column_arr = $this->my_comment( $column_arr );
        
        // 构造表的索引
        $table_list_str = '';
        foreach ($table_arr as $v) {
            $table_list_str .= '
  • ' . $v['table_name'] . "({$v['table_comment']})" . '
  • ' . "\n"; } // 构造数据字典的内容 $table_str = ''; foreach ($table_arr as $v) { $table_name = $v['table_name']; $table_comment = $v['table_comment']; $table_str .= << 
    {$table_name}({$table_comment})
    html; foreach ($column_arr as $vv) { if ($vv['table_name'] == $table_name) { $table_str .= << html; } } $table_str .= "
    字段 类型 注释

    {$vv['column_type']}

    {$vv['column_comment']}
    \n\n"; } // 开始构造整个数据字典的html页面 $html = << {$db_name}数据字典

    {$db_name}数据字典

     
      {$table_list_str}

    {$table_str} [url=#header]

    回到首页[/url]

    html; mysqli_close($this->mysqli); echo $html; } /** * 自定义注释,可以完美覆盖表中的注释。 * 这里的account 表,id字段,只是示例,可以替换成你的表名和字段名。 * @return string[][] */ private function my_comment_list ( ) { $arr = [ [ 'table_name' => 'account', 'column_name' => 'id', 'column_comment' => '自增主键' ], [ 'table_name' => 'account', 'column_name' => 'cid', 'column_comment' => '栏目id' ], ]; return $arr; } private function my_comment ( $arr ) { $my_table = $this->my_comment_list( ); foreach ($arr as $k => &$v) { foreach ($my_table as $my) { if ($v['table_name'] == $my['table_name'] && $v['column_name'] == $my['column_name']) { $v['column_comment'] = $my['column_comment']; } } } return $arr; } } $dict = new Tool(); $dict->db_dict();



    效果展示:

    实用的在线预览数据字典的工具(php编写)_第1张图片

    实用的在线预览数据字典的工具(php编写)_第2张图片




    • 实用的在线预览数据字典的工具(php编写)_第3张图片
    • 大小: 44.5 KB
    • 实用的在线预览数据字典的工具(php编写)_第4张图片
    • 大小: 50.8 KB
    • tool.zip (7.3 KB)
    • 下载次数: 6
    • 查看图片附件

    你可能感兴趣的:(php,数据字典,在线生成)