
问答答题小程序的开发掀起了一股热潮,,我们在开发微信小程序答题系统,,需要实现随机出题。。。。。尤其是一些好比闯关的环节,,需要随机从题库里抽取若干道问题,,给到用户答题。。。。。那么要怎样来做呢?
首先我们要做两张表,,一张是exam表,,用来存考卷的。。。。。另外一张是题库表,,question表。。。。。
在exam内外设置好考试的参数,,好比说本次考试是随机抽几多题,,然后在sql语句中,,随机从question表中抽取问题。。。。。
注重了,,划重点了,,一些要害点来了。。。。。
随机抽问题,,一般人想到的是sql语句的 order by rand ,,然后网上你搜下 order by rand语句的优化,,也有人提到过,,这个order by rand 执行效率很低。。。。。尤其是好比你的题库很大,,若是你做大平台的,,一定会在后期爆发的。。。。。我们自己是做平台的,,开发好这套系统是要一直的复制卖给所有的需要的客户的。。。。。以是客户出的问题肯定会越来越多,,题库要越赖越大的。。。。。题库随着考试次数增多,,题库将会变的很是大。。。。。以是提前就要想好解决步伐,,一次性把代码写到位。。。。。
小程序答题系统 小程序答题
使用ORDER BY RAND 一个15万余条的库,,盘问5条数据,,居然要8秒以上。。。。。审查官方手册,,也说rand()放在ORDER BY 子句中会被执行多次,,自然效率及很低。。。。。
怎么优化要领许多,,各人自行百度,,我用的是使用sql语句 limit的偏移量来做的。。。。。
话未几说,,直接上代码了。。。。。tp的气概哈。。。。。

$total=$questionTable->where($search)->count(); //审查下对应的问题总数有几多
if($total<=$getrand_Num){ //总的问题数比需要的还小 那就不必随机了 直接出所有的问题就行了
$offset = 0;
}else{
$offset = mt_rand(0, $total-1); //偏移量
}
$list=$questionTable->where($search)->field($field)->limit($offset,$getrand_Num)->select();
不知道列位看懂了没有,,这个偏移量的,,就是使用这个模式来随机抽取问题。。。。。希望你也凭证这个思绪优化下你的考试答题系统的随机出题逻辑。。。。。
小程序工具提供多类型商城/门店小程序制作,,可视化编辑 1秒天生5步上线。。。。。通过拖拽、拼接???榻峁剐〕绦蛏坛且趁,,所看即所得,,只需要美工就能做出细腻商城。。。。。
KESION 金狮贵宾会软件
KESION 金狮贵宾会软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。。。KESION 一直通过手艺立异,,提供产品和服务,,助力企业向数字化转型,,通过科技驱动商业刷新,,让商业变得更智慧!
开发小程序搜索框是很常见的工具,,若是搜索框带搜索纪录更能够改变用户使用习惯,,那么怎样实现呢。。。。。...
现在随着移动互联网时代的生长,,在线教育越来越成为一种教育趋势,,而随着小程序的生长,,许多在线教育也最先开发一款教育类小程序系统,,那么开发一个教育类小程序系统应该具备...