将项目设计,开发,测试等工作过程中常用的Excel工具分享,提高工作效率,并借助平台更新升级工具.
# 数据库设计工具
---
- 作者: 何鹏举
- 功能: 数据库设计辅助工具
- 邮箱: <[email protected]>
---
## 目标
* **简约**: 简约明了
* **实用**: 不追求功能齐全
## 说明
- **初始化**: 清空表,清空函数存储过程触发器,清空字典,删除所有非默认的工作表(即数据库表的Sheet)
- **测连接**: 测试是否能与数据库联通
1. 在《说明》工作表中配置
2. 采用的是ODBC驱动,可以在控制面板,管理工具,ODBC数据源中查看是否已经有MySQL或Oracle的ODBC驱动及名称是否一致
3. 连接串可以根据配置自动产生,也可以手工输入
4. Oracle客户端安装:是否的解释
- 是: 情景在XX银行内部,所有外包人员使用的虚机都安装了Oracle客户端,那么采用OLEDB驱动连接即可)
- 否: 个人电脑不想安装太大的Oracle客户端,可以采用instantClient连接,此时安装简单的ODBC驱动即可
- **删表名**: 《目录》中左侧A:G列清空,填入标题
- **取表名**: 数据库中取出所有表及其表的注释(中文名)
- **表注释**: "取表名"后,会发现数据库中有些名,没有加入相应的中文名注释,可以填写后点击,自动生成注释语句,并复制到剪贴板
- **删表细**: 删除除了默认的就有的《目录》,《修订》,《说明》,《字典》,《临时》工作表之外的所有工作表
- **取表细**: 根据"取表名"后取得的所有表,去数据库中逐一取出表的信息,并放置在新建立的工作表中
1. 其中《注释》作为新建立的工作表的名称,注释为空则采用原英文表名作为工作表的名称
2. 中文名注释与默认的五个工作表名称相同的时,相应的工作表不会建立(防止误删,如果追加后缀等,那么"删表细"又麻烦,建议改中文名注释)
- **表链接**: 如果《目录》中的注释(中文表名)与某个工作表一致,则在英文表名单元格建立超链接,并在相应的工作表建立返回按钮
- **表字典**: 在《字典》工作表中,从数据库中取得所有表和所有列,方便在单个工作表中查看
- **删字典**: 《字典》工作表清除所有内容
- **狂建表**: 将所有表的建表语句放在一起,放入剪贴板
1. 一般不建议这么做,建议一张张表分析清楚后,单独建立。或修改字段后,重新生成建表语句。
2. 在除了默认表以外的表,A3单元格输入C,则会将这个表的创建表语句复制到剪贴板。
- **取函过**: 从数据库中取出所有的函数过程触发器,放在《目录》工作表
- **删函过**: 《目录》中右侧M:T列清空,填入标题
- **美字体**: 在《说明》工作表中配置,可设置*两种字体*。
代码会设置两次!原因是某些字体(比如华文细黑)中文比较好看,英文丑的不行,
再次设置为某些英文字体(比如Courier New)的时候,仅仅会修改表格中的英文字。
- **备份下**: 将整个Excel备份到当前目录,追加日期后缀YYYYMMDD
- **其他内容简要说明**
《目录》中,完成列如果填入√,则此列相应内容会变色,便于区分。
(主要应用情景为刚开始设计数据库表结构时作用大)
- **已知BUG记录**
Oracle数据中的列的默认值。在其字典中采用的是Long类型,读入到Excel时为空。
网上搜索Long如何转换为字符串,仅仅发现自定义个函数可以处理,但此工作表仅仅读取下数据库的信息,这么做不合适。
## 版本
- **V0.88 2017/10/14**
基本功能完成
- **V0.89 2017/10/16**
1. 《说明》目录的数据库连接串联动处理
2. MySQL数据库字典表查询语句修改
3. MySQL数据库取列的默认值(longtext,默认取出为空,用substr取前100位) --》 修改"取字典"和"取表细"
- **V0.93 2017/10/16**
1. writeRst方法的错误处理,取消,以便可以看出数据库连接报错信息
2. 注释格式改为Markdown语法格式
3. MySQL的Char和Varchar类型,字段的长度追加
4. MySQL和Oracle数据库Number,Numeric, Decimal,Double, Float数据类型长度和精度追加
5. 《说明》中增加驱动程序批注: 32位Office采用32位的ODBC驱动,64位Office采用64位的ODBC驱动
6. 增加“备份下”功能
7. “初始化”的时候,自备备份
8. “表注释”和“取表细”两个功能所采用的表数组的判断依据由注释列,改为表名列。
9. “表链接”中文注释不存在时,采用链接到英文名,与“取表细”对应
*******************************************************************************************