华融系统是用BIM开发的,整个系统在开发之初没有太多考虑数据表的规范性及和EAS标准产品数据库表的冲突问题,随着开发的不断深入,数据表越来越多,系统自动命名的数据表也显得极不规范,具体问题如下:
1、表的名字规范和标准产品冲突
比如,标准产品的基础表是T_Bas_开头,而华融系统基础的系统也是T_Bas_开头,这样的话就会导致数据库级的表分不清楚那个是标准的那个是华融系统的
2、表较散乱
同是华融系统的表,前缀各不相同,所以在数据库中也是散落在EAS的表中,这样在数据库上查找和维护起来都不方便
基于此,需要规范和整理针对华融系统开发的数据库表,由尚牵头做,我来配合,利用今天周末来进行,具体步骤如下:
1、先由尚整理一份对照表,即原表的前缀和新表前缀的对照,这样可以批量替换,此对照表放到了设计文档中
NO | 模块 | 简称 | 表前缀 | 备注 |
1. | 基础信息 | BD | T_AFL_BD_ | T_BAS_, T_HUR_ |
2. | 客户管理 | CUS | T_AFL_CUS_ | T_CUS_, T_HUR_ |
2.1. | 客户登记 |
| 同上 |
|
2.2. | 客户移交 |
| 同上 |
|
2.3. | 客户财务报表模板 |
| T_AFL_RPT_ | T_TEM_ |
2.4. | 客户财务报表 |
| T_AFL_RPT_ | T_REP_ |
3. | 项目管理 | PRJ | T_AFL_PRJ_ | T_PRJ_ |
4. | 合同管理 | CON | T_AFL_CON_ | T_HUR_ |
5. | 设备管理 | DEV | T_AFL_DEV_ | T_DEV_, T_DM_ |
6. | 投放管理 | PLC | T_AFL_PLC_ | T_PLC |
7. | 其它收退款 | CR | T_AFL_CR_ | T_HUR_ |
8. | 还款计划 | RP | T_AFL_RP_ | T_HUR_ |
9. | 回笼管理 | WD | T_AFL_WD_ | T_HUR_ |
10. | 制裁诉讼 | SL | T_AFL_SL_ | T_HUR_ |
11. | 合同后期管理 | CL | T_AFL_CL_ | T_HUR_ |
12. | 五级分类 | FLC | T_AFL_FLC_ | T_HUR_ |
2、在BOS中删除了所有数据表的外键
目前外键在EAS数据库中的作用已经很小了,而且外键的存在还导致有性能问题,所以EAS的系统基本上都删除了外键,华融系统也删除掉了
3、由尚在BOS中的实体和表的文件中,依据之前的对照表,批量替换旧表名为新表的名称,包括数据表在BOS的文件命名
4、由我对数据库中的表统一改名
我简历一个excel文件,将BOS中的表按模块取出来放到excel中,然后对应转换成新的前缀的表名(这步可以用ultraedit来做,只是批量替换而已),最后在excel中形成完整的对照记录,再加上所需要的Alter Table 及Rename to的sql语句,最后就生成了sql,如下:
Alter Table | T_BAS_FeeSmallCls | rename to | T_AFL_BD_FeeSmallCls | ; |
Alter Table | T_BAS_InsureComp | rename to | T_AFL_BD_InsureComp | ; |
Alter Table | T_BAS_InsureCompEntry | rename to | T_AFL_BD_InsureCompEntry | ; |
Alter Table | T_BAS_KCoe | rename to | T_AFL_BD_KCoe | ; |
Alter Table | T_BAS_LeaseBigCls | rename to | T_AFL_BD_LeaseBigCls | ; |
Alter Table | T_BAS_LeaseForm | rename to | T_AFL_BD_LeaseForm | ; |
Alter Table | T_BAS_LeaseType | rename to | T_AFL_BD_LeaseType | ; |
Alter Table | T_BAS_OwnerShip | rename to | T_AFL_BD_OwnerShip | ; |
Alter Table | T_BAS_PrjIncomeFeeRate | rename to | T_AFL_BD_PrjIncomeFeeRate | ; |
Alter Table | T_BAS_PrjScale | rename to | T_AFL_BD_PrjScale | ; |
将其拷贝出来放到pl/sql中就可以直接执行了,注意Oracle中的数据表默认不能超过30个字符。
对于新表的前缀定义为T_AFL_XX_,XX为模块的缩写,比如BD为基础资料,PRJ为项目管理等,AFL的意义为A是用来排序,可以讲我们的表排到最前面,FL为金融租赁的缩写,这样我们系统的表可以放在数据库表列表的最前端,而且所有的表也都按顺序在一起,便于查找维护。
5、将程序中对表的引用也要改成新表的名字
华融系统开发时要求开发人员对表名在程序中都定义成常量,引用常量,这样以后改表名就直接修改一个常量类即可,不用到处找。
目前华融的表已经有270张了,这个改名字的工作虽然已经完成了,但回顾来看感觉还是花了我们两个人差不多半天的时间,也给后面项目的开发表设计积累了经验。