如何应对业务数据结构的变更

1、问题描述
近期在做一个审批工作流的系统,在和客户交流的过程中,总是听到“你们的系统要支持我们的业务发展,XXX天我们要上XXX产品,你们的系统也要支持XXX产品的审批”;当然,不同产品的审批内容不同、流程不同。在这里先说下怎么解决业务数据结构的变更。

2、解决方法
想要不改程序就实现对业务数据结构变更的支持,基本上是不太可能的,我们只能做到尽量少修改一些代码,目标是:不改变数据库表结构和DAO层。上网查了一些资料,总结如下:
A、最理想的情况
在需求阶段穷尽客户的需求,不产生业务变更,但这是不可能滴:)
B、预留字段
在数据库设计的初期,增加预留字段。这个办法比较简单,但在实际应用中并不乐观。面对的问题是:数据库设计时,预留什么类型的字段?预留多少字段?预留字段与业务数据字段的对应关系如何维护?
C、纵表
纵表是相对于横表的一个概念。横表就是普通的建表方式,如一个表结构为:
主键、字段1、字段2、字段3 ,如果变成纵表后,则表结构为: 主键、字段代码、字段值。 而字段代码则为字段1、字段2、字段3。
数据库设计阶段,将业务对象的相对固定的字段使用横表存储,可能发生变化的字段使用纵表存储;实现DAO层时,同时/分别操作横表和纵表,实现业务对象的CRUP。
面临的问题:当出现比较特殊的数据域时(比如:照片、大文件),还是需要对数据库和DAO进行修改。
*采用横表+纵表,而不是只使用纵表,是考虑到单表数据量的问题,还有就是数据的使用频率问题。
D、不用关系型数据库
也有人这样建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值