每个题目肯定都有一个主键id,如果不用主键id也可以再加一个按顺序递增的唯一字段。你随机结果肯定在集合中保存了,新的随机结果存之前先检查下在集合中是否存在,没有了再查询数据库中是否有。有的话存到题目集合中,没有重新生成随机数。

解决方案 »

  1.   

    你可以分段的去题库中查询id,返回id集合,然后在集合中进行随机,当然你也可以加入某些特定题型类型的权重等,然后通过随机的id查询回对应的试题
      

  2.   

    楼上的都是对的,楼主你首先还是要自己搞明白需求啊,这些事没有捷径,菜鸟更是要多下功夫。
    其实和用户权限啊这些类似,如果要扩展性强,最起码7,8张表要的。但如果你搞清楚需求,只是一个小型系统,也没必要做全套。我曾经做过一个小的,考题相关的就只建了一张表
    questionid-- 自增序列,唯一标识每道题
    lessonid -- 课程对应考题
    type--  单选,多选,判断三种
    subject --题目
    optiona --选项a,b,c,d最多8个
    optionb
    ...
    answer-- 答案
    subject_pic--题目是否有图片
    option_pic--答案是否有图片
    以上,我这样设计已经完全满足了用户的需求,而且预期不会有扩展,题目,选项,答案都放在一张表方便用户批量更改(需求里题目更改比较频繁),但选项要做到随机顺序就比较难,用户不在意,也OK。