在追求完美和极简主义的过程中,我将这个问题发布给你们,寻找是否有比我更好更多的选择。
我有一个带有两个不同模板的模块。基本上第一个是测验模板,第二个是显示测验结果的页面。测验是一种形式,而结果页面则不是。在我的测验页面上,表单的操作基本上是'module / quizResults?id ='。$ quizId
现在进行测验操作,我进行数据库查询以检索属于测验的一组问题,然后当发布帖子时,被调用的动作是quizResults的动作,在这里我必须比较答案我的用户选项与测验问题的正确答案选项。本质上,我必须再次查询数据库以检索另一个数据库中测验的问题集。我觉得这有点矫枉过正,我很烦。
我认为可以有更好的解决方案。我可以回到相同的测验页面,但是那时需要更多的模板复杂性以及使事情变得有点模糊的动作。
任何替代方案?
由于
答案 0 :(得分:1)
您可以通过一些选项来实现您的要求,但您需要问自己,增加的复杂性是否会超过轻微的性能提升,尤其是在查询得到优化的情况下。
选项#1:会话
当您从测验操作加载问题时,您可以将问题添加到用户的会话中,然后当用户发布测试结果时,只需参考会话中存储的问题。
选项#2:Memcached
与上面相同,但是不是将问题存储到用户会话中,而是可以将问题存储到内存缓存中,因此在计算结果时,而不是进行另一个数据库查询,而是从缓存层中提取问题。
答案 1 :(得分:0)
你试图以错误的方式解决这个问题。
性能绝对没问题。但问题在于程序员的表现。如果你必须手动制作每个查询并传递所有正确的变量,那将花费你很多时间。您需要的是一个框架,它允许您以更快的方式构建必要的逻辑。如果你知道如何完美地做到这一点你会赚很多钱,直到那时你将不得不像我们其他人一样划伤:P
答案 2 :(得分:0)
假设提交页面应该显示全部正确,如果一切正确,或者不正确,如果没有,我会写一个myprojectQuestionValidator
并在我的问题表格中使用它,每个问题/答案一个。然后,验证器可以根据数据库中的正确答案检查每个答案。同意Frits,不要担心性能 - 这是IMO的过早优化。将应用程序分解为概念组件,并在需要时担心优化。