首页
会员中心
到顶部
到尾部
VC毕业设计

数据筛选接口的设计

时间:2020/10/27 9:05:34  作者:  来源:  查看:0  评论:0
内容摘要:WISE系统是某公司的数据处理系统,它的一个主要功能是每天根据复杂并且灵活的条件筛选出适当的数据返回给客户。所筛选的数据都来自于一张表,这张表的字段有260个,这些字段中有超过250个字段需要作为筛选字段,它们通常互为组合去筛选出客户需要的数据,根据客户的需要它们的组合又是多变的...

WISE系统是某公司的数据处理系统,它的一个主要功能是每天根据复杂并且灵活的条件筛选出适当的数据返回给客户。所筛选的数据都来自于一张表,这张表的字段有260个,这些字段中有超过250个字段需要作为筛选字段,它们通常互为组合去筛选出客户需要的数据,根据客户的需要它们的组合又是多变的。这张表的数据量通常在一千万到一亿条记录之间。值得注意的是,筛选条件需要去匹配的值是具有特定意义的,尽管这些值数目众多,但它们的数量不是随意增长的。而且这些值是根据客户的需求可以去定制的。

开发所需的基本软、硬件环境为:
 Windows 2003 或者 Windows XP。
 Oracle 10 g R2。
 CPU 2.40GHz
 1G以上内存。
 2G以上可用硬盘空间。
在Windows 2003 操作系统下,以Toad for Oracle Xpert v9.0.1.8为开发工具,用Oracle 10 g R2为后台数据库。

解决方案的设计
在这里来逐步分析需求应该通过怎样的方式来实现,进行一些解决方案的设计。
方案1 :直接写过程来实现。
根据不同的筛选条件,写不同的过程来实现数据筛选。
问题:很显然,这种方案是行不通的。由于筛选字段数量达两百多个,而且相互之间可以互为组合,所以是不应该写过程来实现的。即便把目前需求要求的筛选条件通过写过程来实现了(暂不考虑开发人员的头疼),如果需要添加一些新的筛选,那将是非常麻烦的。再则,如果所写过程中出现一些问题,也是难以维护的。
所以考虑到开发的质量与代码的可维护性,是不可能采用此方案的。
方案2:结合数据建模与程序设计来实现。
由于筛选条件数量众多,但是条件之间的很多部分相互重合,从面向对象的角度出发,这些条件间存在继承的关系,如果能采用面向对象的方法,或许能做到重用条件。
假设一共有250个独立的筛选条件,也即表中的250个字段单独作为条件时的情况。这些条件能相互组合,组合后的条件越发复杂,写程序时如果按照方案1要想做到很好的代码重用是不可能实现的。
所以根据方案1的失败,要想很好的做到代码重用,就很有必要引入面向对象的思想,采用继承的方法,做到条件组合,就好像类与类之间的继承。作为表中列名出现的字段,是不可能相互组合的。但是换个角度,大胆的设想,如果把这些字段不作为列名,能不能做到相互组合呢?如果把这些字段转换成变量,对变量一一赋值,和作为字段相比并没有做到很大的改善。
如果把这些字段转换成表中的记录值呢?试想一下,似乎看到一线光明,因为在PL/SQL里,可以用到动态SQL的方法,这样可以所需要的条件动态的组合了。
 



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号