最近项目中充斥着以往没用的功能,严重影响性能,于是准备对项目进行整理重构,清理没用的功能,涉及到数据库的清理,学名就是数据库重构,首当其冲的就是表结构的重构,本系列包含以下内容:
-
表合并
-
视图关系重构
-
存储过程业务逻辑整理
好了,下面开始第一部分的内容:
目前项目中的数据库存在过度设计的问题,首当其冲的是用户信息的存储表过于零碎,多达10个表之多,每个表存储与用户直接关联的不同内容,而且都是一对一的关系,造成对用户操作处理过程繁琐,查询和更新数据严重影响性能,于是从用户开始重构。特别提醒:重构之前必备的准备工作就是备份数据库和现有程序代码,避免重构过程中出现数据丢失和程序混乱,到时候就追悔莫及了!
用户表之间的关系图:
这些都是UserInfo的属性,于是将这些表整合到UserInfo表中,如下图:
- 先在UserInfo表中加入其他的表的字段,注意:其他表这时候不需要删除
- 然后按照User_ID=UserInfo.ID为条件依次更新UserInfo表中字段的值,也就是导入其他表的数据
- 最后一步就是不要删除其他表,为什么多这么一步,因为数据库中除UserInfo表之外还有其他表可能关联这些废弃的表,删除后会引起数据查询出错、视图无法显示、存储过程报错等一系列的问题
- 接下来就是视图重构需要讲解的内容了,如何清理视图并提出废弃的表