应用程序开发总结(7)--用折叠数据库字段的方法保存配置

第九章  用折叠数据库字段的方法保存配置

      对一个对象进行持久化(保存)有很多方法。可以保存到数据库,也可以序列化到xml文件中,也可以用AppSettings的方式写入到程序配置。
      使用关系数据库的方式,为对象的每一个属性建立一个字段。如果业务还没有上升到使用使用对象数据库,这种方法或许是大家首选的方式。下面我就来说明我使用这种方法时候遇到的困难和我应对的策略。

     在我们的系统有很多模型对象,每个对象有一大批属性。我们将这些对象的属性保存到Access表中。下图是我们最开始的时候设计的数据库字段。
     一切都是那么的自然和容易理解,但是某一天,我想添加一个新的字段ReferenceKey。这个字段很重要,但是现有的配置表没有这个字段。没办法,我只能升级系统,把配置的版本提高一个版本,同时更新系统中读取配置的方式。
       但是一切没有安静下来,随着功能增强,越来越多的字段需要添加,而且部分字段由于丢失含义,需要删除。如此修改了好几个版本。虽然做的了向下兼容,但是低版本的系统无法支持高版本的配置。如此越来越麻烦。
       当系统开始往网络方面发展的时候,本地Access数据库是不能用的。只能换支持网络的数据库。但是不同的数据库字段的格式不同,所以又等于重复设计数据库的配置。
 
      如果工作了2年多吧。就开始着手找一种方法统一解决这个问题。我打算把所有的属性信息放在一个可扩展的字段中,这样数据库的字段长度就固定了,无论你的类有多少个属性,数据库不需要修改了。
   如上图,我把字段控制在这5个字段上,其中最重要的是FieldValues。这个字段以特有的方式把所有的字段包容了起来。

     这种方式的改变,从此不再考虑类的属性是否存在添加或者修改。而且其他种类的对象也可以使用同样一套表格配置,不再需要重新设计数据库字段了。
     当然这种方式也有缺点:1)字段被封装后,基本无法进行过滤。比如原来的表格可以根据Name来进行选择,而现在不行。2)FieldValues字段只能使用变长的或者类似Note这样的数据类型,可能造成数据库空间过大。
      具体是否采用类似的方式,取决于你的业务需求。总的来说,这种方式对于常用的配置是非常有用和方便的。
      
      对于如何把一个类的字段融合到FieldValues这个字段,请看下一章。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值