`
h2n2
  • 浏览: 44179 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

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

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

相关推荐

Global site tag (gtag.js) - Google Analytics