设为首页 - 加入收藏 甘南站长网 (http://www.0941zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 苹果 手机 中国 学习
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

MongoDB实现问卷/考试设计

发布时间:2019-10-31 18:12 所属栏目:[优化] 来源:我的小熊不见了
导读:MongoDB的特点 MongoDB是一个面向文档存储的数据库。在MongoDB中,一条记录叫做document(文档),由类似于JSON结构的键值对组成。 由于类似于MongoDB直接存储JSON的特性,MongoDB天生适合作为存储结构复杂的数据结构的介质。类似于问卷调查和考试这种需求

MongoDB的特点

MongoDB是一个面向文档存储的数据库。在MongoDB中,一条记录叫做document(文档),由类似于JSON结构的键值对组成。

MongoDB实现问卷/考试设计

由于类似于MongoDB直接存储JSON的特性,MongoDB天生适合作为存储结构复杂的数据结构的介质。类似于问卷调查和考试这种需求,用mysql这种关系型数据库实现起来太过复杂,效率低下;而如果使用MongoDB来实现的话,则会发现异常清晰简单。

需求分析

在一张试卷中,会有很多个问题,问题的类型大体上可以分为单选题、多选题、判断题、简答题等。每一个问题又会有很多个选项,选项可以是文字描述也可以是图片又或者图文结合。

MongoDB实现问卷/考试设计

那么一张试卷的JSON格式应该大体上长成这样:

MongoDB实现问卷/考试设计

当然这只是最简单的数据结构,要完成一张试卷,还需要加入更多的属性。

结构设计

我们采用自底向上的结构设计方式,先对每个选项的数据结构进行设计。

选项设计

  1. public?class?Option?{??
  2. ????/**??
  3. ?????*?选项类型??
  4. ?????*/??
  5. ????private?Integer?oType?=?1;??
  6. ????/**??
  7. ?????*?选项内容??
  8. ?????*/??
  9. ????private?String?text;????
  10. ????/**??
  11. ?????*?选项图片??
  12. ?????*/??
  13. ????private?String?img;??
  14. ????/**??
  15. ?????*?是否正确答案??
  16. ?????*/??
  17. ????private?Boolean?right;??
  18. ????/**??
  19. ?????*?用户是否选择??
  20. ?????*/??
  21. ????private?Boolean?selected;??
  22. ????...?

选项类型oType用来标志选项是普通文本还是图片或者图文;right用来标志这个选项是否是正确答案,用于自动判卷;selected用来标志用户有没有选择这个答案。

问题设计

  1. public?class?Question?extends?MongoBean?{??
  2. ????/**??
  3. ?????*?数据的id??
  4. ?????*/??
  5. ????private?String?dataId;??
  6. ????/**??
  7. ?????*?题目类型,1判断题;2单选题;3多选题??
  8. ?????*/??
  9. ????private?Integer?qType;??
  10. ????/**??
  11. ?????*?题目标题??
  12. ?????*/??
  13. ????private?String?title;??
  14. ????/**??
  15. ?????*?题目选项??
  16. ?????*/??
  17. ????private?List
  18. ????/**??
  19. ?????*?数据类型??
  20. ?????*?@see?rmjk.enums.BizTypeEnum??
  21. ?????*/??
  22. ????private?Integer?dataType;??
  23. ????/**??
  24. ?????*?数据标题??
  25. ?????*/??
  26. ????private?String?dataTitle;??
  27. ????/**??
  28. ?????*?解析??
  29. ?????*/??
  30. ????private?String?analysis;??
  31. ????/**??
  32. ?????*?这题是否答对??
  33. ?????*/??
  34. ????private?Boolean?right;??
  35. ????/**??
  36. ?????*?这题答的时长??
  37. ?????*/??
  38. ????private?Long?duration;??
  39. ????/**??
  40. ?????*?这题的得分??
  41. ?????*/??
  42. ????private?Long?points;??
  43. ????...?

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章