Ian*_*oke 7 sql-server asp.net
背景
我正在撰写一份面向大量观众的调查.它包含15个问题,每个问题有五个可能的答案以及潜在的评论.
用户可以循环查看以任何顺序回答它们的所有15个问题,并且可以随时离开调查并返回以回答剩余的问题.
一旦在所有15个问题上尝试了答案,就会出现一个提交按钮,允许他们将问题作为最终答案提交.在该阶段之前,只要用户加载调查页面,就需要检索所有答案.
要求是用户只能在页面上看到一个问题,"上一个"和"下一个"按钮允许用户滚动查看问题.
要求
我可以在每次用户单击按钮并保存当前响应等时请求问题,但这将是对已经大量使用的数据库的大量命中.我没有时间购买新的服务器等,所以我必须用我所拥有的.有什么办法可以在用户机器和/或响应上缓存问题吗?显然,我需要响应数据是安全的,并且只有用户知道,所以我觉得有点卡住了最好的方法.有什么指针吗?
如果这意味着我会得到一些高质量的讨论和反馈,我准备在这个问题上提供100分的赏金.
您有三个需要平衡的要求:
任何涉及在不稳定位置(cookie、会话等)缓存答案的解决方案都会增加数据丢失的风险。最终的解决方案取决于您如何对这三个要求的重要性进行排序。如果数据库问题位于顶部,那么您要么需要冒数据丢失的风险,要么花费大量额外时间使用某种临时存储方案(如 Kevin 的平面文件想法)编写解决方案。
有几个人建议您可能过早地进行优化。我建议你首先考虑这个想法——也许这整件事没有实际意义。
但是,假设您的数据库情况是一个真正的问题,我认为您的最佳需求平衡将是一个立即保存数据库答案的系统(以防止数据丢失),但在您实际必须访问数据库时仔细管理。
<List>string
. (如果您可以以某种方式识别新用户而无需访问数据库,那么您可以为新用户跳过此步骤。)使用此方案,您可以点击数据库一次来加载调查,为每个用户启动(或重新启动)调查时点击一次数据库,并为每个新的或修改的答案点击一次。减少的程度可能没有您希望的那么多,但它为您提供了最好的数据保护。