系统说明
- 共100道不定项选择题,存储在MySQL数据表(ques)中
- 每个考生的题目顺序不一样
- 150人同时答题和交卷
系统设计
时间同步
要求考生在同一时间进行交卷,就要统一时间。
因此我们以服务器时间为准,在考生登录时获取服务器时间作为开始时间。
打乱题目顺序
使用mysql中的order by rand()
方式打乱题目顺序,其中rand种子是考生的考号。
可以保证每个考生的题目顺序是不同的,但是又能保证自己题目的顺序是固定的。
Redis缓存答题记录
为提高系统的响应速度,将考生作答结果保存到Redis数据库中。
Redis存储已作答题目
将考生所有的已作答题目存储到Redis集合中,用于在系统中显示考生答题记录。
sadd ansLog:201101 1
sadd ansLog:201101 2
Redis存储答题结果
将考生的答题结果存储到Redis哈希中
hmset ans:201101 1 AD # 记录数据库中题目id为1的答题结果
hmset and:201101 2 ED # 记录数据库中题目id为2答题结果
hmset ans:201101 1 DE # 更新数据库中题目id为1答题结果
hget ans:201101 2 # 查看数据库中题目id为2答题结果