****************************高分求问卷调查的解决办法(请务必先看清楚具体问题)***************************

jimu8130 2007-06-06 04:14:56
问题背景: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缓存起来,请问各位有什么更好的解决这种需要多次查询数据库的办法么?
...全文
310 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzn800930 2007-06-07
  • 打赏
  • 举报
回复
嗯,在有人更改缓存内容时也要相应更新缓存,达到数据一致
jimu8130 2007-06-06
  • 打赏
  • 举报
回复
to ERPCoder(Most Valuable Player) :
"没有过Cache,Session会丢失,如果Cache可行而且不想经常查询数据库的话,建议用..."

大哥我需要的是经过你自己证明的方法和建议啊,连你自己都不确定好用不,怎么说服我来用了?
jimu8130 2007-06-06
  • 打赏
  • 举报
回复
to yzn800930(灌水有理,偷窥无罪);
从我的"关键问题描述"你可以知道,我要访问的要么是问题表要么就是选项表和统计表(连接查询)
不存在你说的字典表.我看了一篇使用cache类的文章,不过粗略考虑了下,
我用的是连接查询得到datatable,那么我缓存的就是这个datatable
Cache mycache = new Cache();
mycache["vote"] = mydatatable;
不过这个cache是应用程序级别的,对所有用户有效,那么另外一个用户投完票后还得查询更新对应的项了?
ERPCoder 2007-06-06
  • 打赏
  • 举报
回复
没有过Cache,Session会丢失.

如果Cache可行而且不想经常查询数据库的话,建议用...
yzn800930 2007-06-06
  • 打赏
  • 举报
回复
经常被访问的数据也最好缓存,避免多次调用数据库
一般经常被缓存的有:字典表的数据
jimu8130 2007-06-06
  • 打赏
  • 举报
回复
to yzn800930(灌水有理,偷窥无罪):
哦,原来如比啊,我查查看,能否给出使用单件类的注意事项了?


其他各位还有没有好的方法建议了?
yzn800930 2007-06-06
  • 打赏
  • 举报
回复
单件类就是Cache类,网上有很多事例,一个不可继承,具有静态的构造函数的类,在请求时就加载到服务器,相当于一个Application[""],自己定义自己的操作方法
yzn800930 2007-06-06
  • 打赏
  • 举报
回复
更新操作时可以同时更新Cache缓存,或者每半小时让缓存过期,再请求时重新填充一次缓存
jimu8130 2007-06-06
  • 打赏
  • 举报
回复
to yzn800930(灌水有理,偷窥无罪):
数据量估计应该不大,你也看到过一般问卷调查最多也就30个问题左右,大概6个选项那么就是将近200条记录,关键是在显示投票结果的时候减少访问数据库的次数.
不知道你说的单件类缓存到服务器是怎么来做,能否给出个大概的模版?
LutzMark 2007-06-06
  • 打赏
  • 举报
回复
ls说的我很感兴趣,用cache减少服务器开销。可惜没用过,只能学习。
jimu8130 2007-06-06
  • 打赏
  • 举报
回复
to hdt(倦怠):
缓存这个东东还没用过,兄弟能否给出使用中的注意事项!
感觉因为用户每次投票完后,缓存应该需要更新吧?如果仅仅是浏览已投票的结果不涉及到投票操作,那么缓存倒是个不错的方法,不过不知道怎么样来找到其中的平衡点
yzn800930 2007-06-06
  • 打赏
  • 举报
回复
viewstate:页面级别的缓存,不可能存储太大的数据量
session缓存容易丢失数据,会过期
用单件类缓存到服务器吧,如果数据量大,并且经常需要访问
真相重于对错 2007-06-06
  • 打赏
  • 举报
回复
如果只是查询的话可以用缓存,针对缓存操作

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧