关于数据库表结构设计

想做一个测试系统,目前碰到问题是不知如何设计表。
如问题分为单选、多选、判断、简答题、填空题

比如判断题的选项就是问题本身
那么所有问题用一张表,然后用类型做区分?那么他们的正确答案放哪里?

另外选项如何做表,有单选、多选、感觉思路也乱,希望有经验的帮忙整理

阅读 5k
4 个回答

单独建一个答案表

问题表:
clipboard.png

选项表:
clipboard.png

问题与选项表(中间表):
clipboard.png

问题与答案表(中间表):
clipboard.png

该设计可以将单选,多选,判断(可视为单选)合在一起

一张表就行了,反正就是问题、答案、题目类型嘛,这不就OK了

填空题假如有标准答案则可以用表来判断对错,简答题正常来说是无法用表来控制的,因为没有标准答案。建议测试系统只有选择题和判断题

选择题(单选和多选)、判断题可以用两张表来控制,一张问题主表,一张答案表,通过对应关系来处理答案;
question

qid  content     ture_answer  all_answer    qtn_type
1    水果有哪些?    2,3    1,2,3,4            1(选择题)
2    1+1=2对么?    ture    ture/false         2(判断题)
3    中秋节是_月_日   5,6    空                 3(填空题)

answer:

sid    content    
1        黄瓜
2        苹果
3        香蕉
4        西红柿   
5        八
6        十五    

根据question表中的类型字段来分别处理:

    1. 选择题判断对错的时候可以使用find_in_set函数来查询true_answer字段是否正确;
    2. 判断题可以直接判断true/false
    3. //填空题必须有标准答案
        根据空白序号来跟正确答案匹配判断是否正确。

以上只是问题和答案的关系表。另外你还需要一张学生答题的记录表来记录成绩。具体设计不再写了,假如有需求可以再帮你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题