首先我们要做两张表,一张是exam表,用来存考卷的。另外一张是题库表,question表。
在exam表里设置好考试的参数,比如说本次考试是随机抽多少题,然后在sql语句中,随机从question表中抽取题目。
随机抽题目,一般人想到的是sql语句的orderbyrand,然后网上你搜下orderbyrand语句的优化,也有人提到过,这个orderbyrand执行效率很低。尤其是比如你的题库很大,如果你做大平台的,一定会在后期发生的。我们自己是做平台的,开发好这套系统是要不断的复制卖给所有的需要的客户的。所以客户出的题目肯定会越来越多,题库要越赖越大的。题库随着考试次数增多,题库将会变的非常大。所以提前就要想好解决办法,一次性把代码写到位。
小程序答题系统小程序答题
使用ORDERBYRAND一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDERBY子句中会被执行多次,自然效率及很低。
怎么优化方法很多,大家自行百度,我用的是使用sql语句limit的偏移量来做的。
话不多说,直接上代码了。tp的风格哈。
不知道各位看懂了没有,这个偏移量的,就是使用这个模式来随机抽取题目。希望你也按照这个思路优化下你的考试答题系统的随机出题逻辑。
工作日8:30-12:0014:30-18:00周六及部分节假日提供值班服务
THE END