数据字典生成工具之旅(2):数据字典生成工具及文档工具作用介绍

       上一篇介绍完了整个架构和功能,这一篇将更加详细介绍功能和操作,将会以实际例子帮助理解!(预告:下一篇正式进入实现原理讲解)

阅读目录

回到顶部

开始使用工具

        日常工作你是通过什么工具来创建表的呢?

        1.通过SqlServer自带的新建表的功能实现,或者直接写Create Table(.....)语句。能更加便捷的方式创建吗?这样创建的表便于后续维护和学习吗?

        2.通过PowerDesign创建表,很直观,然后导出表的创建语句。模拟一下做学生信息管理系统,则需要创建一个学生信息表(Student)

          再看看导出的SQL 

if exists (select 1
            from  sysobjects
           where  id = object_id('Student')
            and   type = 'U')
   drop table Student
go

/*==============================================================*/
/* Table: Student                                               */
/*==============================================================*/
create table Student (
   Name                 nvarchar(20)         null,
   Code                 nvarchar(30)         null,
   Sex                  bit                  null,
   constraint PK_STUDENT primary key ()
)
go

       先删除表再创建表(如果是后来在学生信息表加了性别字段,这样已执行原先表里面的数据全都被干掉了),字段的中文含义也没有生成,不便于后续维护。

       3.可不可以通过EXECL或者WORD更加常用的文档来生成呢?

回到顶部

工具全景图

1.数据字典生成工具

         第一步:在EXECL,PowerDesign,Word中设计好表结构(特别注意:EXECL,WORD表的格式要固定成和模版一致才能正确生成)。看下EXECL和WORD模版的格式

             模版文件可以从安装程序目录下的“测试模版”下,自己可以复制出来进行操作。

            再看看通过工具生成SQL

            我们先以新增模式生成表,然后再看看修改模式生成(自动识别模式会根据表的字段在数据库中是否存在,做为判断基础,存在则会用修改模式否则新增模式)

新增模式SQL     

/*---------------------------数据字典生成工具(V2.0)--------------------------------*/
GO
IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE id=OBJECT_ID('[Student]'))
BEGIN
/*==============================================================*/
/* Table: Student                                              */
/*==============================================================*/
CREATE TABLE [dbo].[Student](
    [StudentGUID] uniqueidentifier   ,
    [Name] varchar(40)   ,
    [Code] varchar(40)   ,
    [Sex] tinyint   ,
    PRIMARY KEY(StudentGUID)
)
    

declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', '学生信息表','user', @CurrentUser, 'table', 'Student'
execute sp_addextendedproperty 'MS_Description', '学生信息GUID','user', @CurrentUser, 'table', 'Student', 'column', 'StudentGUID'
execute sp_addextendedproperty 'MS_Description', '姓名','user', @CurrentUser, 'table', 'Student', 'column', 'Name'
execute sp_addextendedproperty 'MS_Description', '编号','user', @CurrentUser, 'table', 'Student', 'column', 'Code'
execute sp_addextendedproperty 'MS_Description', '0:男  1:女','user', @CurrentUser, 'table', 'Student', 'column', 'Sex'

END
GO

      在数据库执行,后续需求变动了需要在Student表里面新增一个年级的字段,我们现在之前的模版上面加上该字段

    重新使用工具,切换到修改模式生成(特别提醒:修改模式是需要连接数据库的,需要进行对比找出新增的字段)。可以看到找出了刚才新增的Grade字段了,现在在数据库里面执行。

/*---------------------------数据字典生成工具(V2.0)--------------------------------*/
GO
IF NOT EXISTS(SELECT 1 FROM syscolumns WHERE id=OBJECT_ID('[Student]') AND name='Grade')
BEGIN
    ALTER TABLE [dbo].[Student] ADD [Grade] varchar(40)       
    declare @CurrentUser sysname
    select @CurrentUser = user_name()
    execute sp_addextendedproperty 'MS_Description', '年级','user', @CurrentUser, 'table', 'Student', 'column', 'Grade'
END
GO

  来查询一下该表信息,标红部分着重注意,发现没鼠标放上去表和字段的中文含义就提示出来了,你还需要为不懂表和字段含义而操心吗,后续维护是不是更方便了呢?

        2.文档生成工具

         上面我们已经创建好了学生信息表,又来了个需求这次我们需要和公司的其它部分进行交互了,他们需要一个表结构信息的文档,你会怎么处理呢?又或者是你的部门来了新同事,怎么让他迅速了解整个系统

   和学习表结构呢?文档生成工具能解决你的问题。

       可以看到通过系统和时间过滤出了刚创建的学生信息表,然后导出Word或者Html格式的文档

           整个演示过程完毕了,回顾一下。首先我们通过在EXECL或者WORD里面添加学生信息表,然后通过数据字典生成工具生成了该表的创建语句,模拟了需求修改需要加字段的场景。后续则是需要传递信息了,这个时候文档生成工具就派上用场了,通过文档工具可以生成WORD或者HTML版的数据库结构设计说明书,是不是传递更加方便了呢。

           本章到这里就要结束啦,如果你觉得对你有帮助请记得点赞哦,下篇正式进入实现细节,会带你学到更多知识哦!

回到顶部

工具源代码下载

      目前总共有经过了七个版本的升级,现在提供最新版本的下载地址

数据字典生成工具V2.0安装程序

最新安装程序

数据字典生成工具源代码

最新源代码

http://code.taobao.org/svn/DataDicPub

SVN最新源码共享地址

回到顶部

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序小工

MySQL数据库常见名词对比

MySQL 由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在 Internet 上的中小型网站中。随着 MySQL 的不断成熟,它也...

933
来自专栏.NET后端开发

ADO.NET入门教程(一) 初识ADO.NET

摘要 作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色。本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET...

36910
来自专栏码神联盟

碎片化 | 第四阶段-48-hibernate概述和配置-视频

本套视频从Java基础到架构模式以及AI算法,整体视频以“碎片化”学习的模式,提供给大家 ,并配备实际项目为案例,让大家在坐车、吃饭、午休、蹲坑的时候,都可以学...

3186
来自专栏菜鸟前端工程师

react-开发经验分享-form表单组件中封装一个单独的input

614
来自专栏沈玉琛的专栏

当 MySQL 连接池遇上事务(一):神秘的幽灵锁

MySQL连接池是一个很好的设计,通过将大量短连接转化为少量的长连接,从而提高整个系统的吞吐率。一般各个团队都会对连接池进行封装,只提供简洁的接口供上层使用。但...

1.2K2
来自专栏草根专栏

Entity Framework Core 2.0 入门

LearnEf.Console依赖LearnEf.Domains和LearnEf.Data:

73214
来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-库存查询模块

回顾与说明     前面我就用了大量的篇幅我讲解了“商品入库”模块,在商品入库模块之中,我们介绍 了与之相关的管理信息系统开发中的一个共性场景,以及这个应用场景...

1756
来自专栏友弟技术工作室

MongoDB简易教程mongo简介及应用场景安装和使用mongodbPHP中操作mongo数据库python中操作mongo数据库

传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而...

3466
来自专栏数据和云

【循序渐进Oracle】Oracle的逻辑备份与恢复

编辑手记:针对最近发生的炉石及GitLab事件,我们不得不再次强调备份的重要性。DBA的四大守则,第一条就是备份重于一切。年初做好备份,愿你的系统17无恙。 本...

3458
来自专栏MYSQL轻松学

临时表tmp table如何避免

1、配置文件参数my.cnf tmp_table_size=64M max_heap_table_size=64M tmpdir = /data/mysql/t...

3097

扫码关注云+社区