前言
提到在线考试,有一个话题不能绕过去,那就是自动组卷的逻辑,
之前在某小程序小试牛刀,当时用了三个云函数分别获取单选题40道、多选题20道,判断题20道
但是一直没有纳入我的产品功能序列中,最近几天在规划我的考试小程序V4.0的功能点,又重拾了这个功能,现在分析下
需求
在某1000道题的题库中,随机抽取
- 单选 40道题 每题1分
- 多选 20道题 每题 2分
- 判断 20道题 每题1分
这样组卷总共100分
逻辑
首先会想到两种方案:
方案一:一个云函数一次获取1000道题,然后分别提取单选、多选、判断到三个数组中,然后乱序,各提取40、20、20
方案二:三个云函数分别提取单选、多选、判断各40、20、20
当前采用方案为方案二,运行过程如下
1000条记录,组卷逻辑云函数用时257ms,完全可以接受,完美的
具体代码实现时,参考了下面示例代码
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/read.html
体验
总结
从线上运行来看,这种方案算是当下最完美的一个方案,如果有类似需求可以参考
未完待续
怎样保证1000道题 中至少单选、多选、判断各40、20、20 ??
如果多选题只有19题呢?