日期:2014-05-18  浏览次数:20467 次

****************************高分求问卷调查的解决办法(请务必先看清楚具体问题)***************************
问题背景:1   数据库有4个表   问卷表(问卷id,问卷name,问卷设置项)
问题表(问题id,问题name,问卷id,问题设置项)
选项表(选项id,选项名称,问卷id,问题id,选项设置项)
统计表(选项id,问卷id,问题id,票数)
2   每个用户投完票,遍历其问卷,写入到统计表
问题:   当进行显示投票结果编程的时候,以下是我的做法
    gridview1建立一个模版列,加入一个label(绑定到问题名称)和另外一个gridview2(gridview2是显示相应问题下每个问题的投票结果的)
***********************问题关键描述**************************
那么开始需要查询数据库取得特定问卷下所有的问题(id和名称)
然后在对gridview1每行Databound时我还得查询数据库取得相应问题下所有选项的统计结果和gridview2进行绑定
***********************问题关键描述**************************
从 "问题关键描述 "块的内容可以看出如果某个问卷问题比较多(或者还有可能同时有多个用户查看投票结果的话)那么就得多次查询数据库服务器,对db服务器的压力就好大,目前我想到的一种做法就是将问卷下所有问题选项的统计结果用viewstate或者session缓存起来,请问各位有什么更好的解决这种需要多次查询数据库的办法么?


------解决方案--------------------
如果只是查询的话可以用缓存,针对缓存操作

------解决方案--------------------
viewstate:页面级别的缓存,不可能存储太大的数据量
session缓存容易丢失数据,会过期
用单件类缓存到服务器吧,如果数据量大,并且经常需要访问