应用程序开发总结(7)--用折叠数据库字段的方法保存配置
2014-08-29 17:13
176 查看
第九章 用折叠数据库字段的方法保存配置
对一个对象进行持久化(保存)有很多方法。可以保存到数据库,也可以序列化到xml文件中,也可以用AppSettings的方式写入到程序配置。使用关系数据库的方式,为对象的每一个属性建立一个字段。如果业务还没有上升到使用使用对象数据库,这种方法或许是大家首选的方式。下面我就来说明我使用这种方法时候遇到的困难和我应对的策略。
在我们的系统有很多模型对象,每个对象有一大批属性。我们将这些对象的属性保存到Access表中。下图是我们最开始的时候设计的数据库字段。
一切都是那么的自然和容易理解,但是某一天,我想添加一个新的字段ReferenceKey。这个字段很重要,但是现有的配置表没有这个字段。没办法,我只能升级系统,把配置的版本提高一个版本,同时更新系统中读取配置的方式。
但是一切没有安静下来,随着功能增强,越来越多的字段需要添加,而且部分字段由于丢失含义,需要删除。如此修改了好几个版本。虽然做的了向下兼容,但是低版本的系统无法支持高版本的配置。如此越来越麻烦。
当系统开始往网络方面发展的时候,本地Access数据库是不能用的。只能换支持网络的数据库。但是不同的数据库字段的格式不同,所以又等于重复设计数据库的配置。
如果工作了2年多吧。就开始着手找一种方法统一解决这个问题。我打算把所有的属性信息放在一个可扩展的字段中,这样数据库的字段长度就固定了,无论你的类有多少个属性,数据库不需要修改了。
如上图,我把字段控制在这5个字段上,其中最重要的是FieldValues。这个字段以特有的方式把所有的字段包容了起来。
这种方式的改变,从此不再考虑类的属性是否存在添加或者修改。而且其他种类的对象也可以使用同样一套表格配置,不再需要重新设计数据库字段了。
当然这种方式也有缺点:1)字段被封装后,基本无法进行过滤。比如原来的表格可以根据Name来进行选择,而现在不行。2)FieldValues字段只能使用变长的或者类似Note这样的数据类型,可能造成数据库空间过大。
具体是否采用类似的方式,取决于你的业务需求。总的来说,这种方式对于常用的配置是非常有用和方便的。
对于如何把一个类的字段融合到FieldValues这个字段,请看下一章。
相关文章推荐
- 开发Qt应用程序的基本方法总结
- 基于数据库开发常用方法逻辑总结
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- 【嗨兴科技】Android 3.0.1 图解配置NDK开发环境以及Hello Word To JNI方法总结
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- 使用Apworks开发基于CQRS架构的应用程序(七):配置数据库
- .NET 开发中数据库字段状态绑定到DataGrid的方法(2005-6-15)
- Android开发中Launcher3常见默认配置修改方法总结
- 【转载】C#连接数据库及读取数据库中字段的简单方法总结
- 使用配置文件保存连接数据库的字符串的方法
- Java连接各种数据库的配置方法总结
- 关于使用Yii框架开发时数据库增加字段后保存无效的问题
- 开发问题---数据库字段前出现“—”(保存留用,仅供参考)
- C#操作本地文件及保存文件到数据库的基本方法总结
- 应用程序保存数据库连接配置可能出现的一个安全隐患
- 基于数据库开发常用方法逻辑总结
- 数据库设计:同一字段可以复选多值 方法总结
- asp.net 1.1网站开发配置出现”Visual Studio .NET 无法创建或打开应用程序”解决方法
- Odoo只读字段在onchange方法中被改变后不会保存到数据库
- java开发连接池配置方法总结