各位大虾,我最近在做一个题库的数据库设计,在建基础表的问题上有点问题。我的思路是,按题目类型分表,再建一个答案表,比如有单选题和判断题,就分别建一个单选题表和一个判断题表,再分别建答案表存答案。但这样的话就成两大块了,而且是有几种类型的题目就有几大块,这样是不是很不规范啊!哪位大虾能给个好的思路啊!谢谢了!

解决方案 »

  1.   

    我个人浅见:
    1、题目类型没必要分表,就建一个表存放题目的类型,大概是题目ID,题目类型名这两个字段,然后题库中只存放题目ID即可,当有必要显示题目名称时才关联这个类型表。
    2、单选和判断是一类问题,所以完全可以放到一个表,只需要加个类型判断就可以了。
    3、不要过于细化问题,不要每一类题目都分一个表,当数据大的时候性能问题就会出现。
    4、我觉得建以下几个表吧:
    a、用户表,记录用户信息,字段你自己去弄
    b、用户得分表,记录用户每次得分情况
    c、题库表,存放题目信息,用一个类型字段来区分每个题目是哪类题。
    d、题目类型表
    e、其他配套表,比如可以弄一个表,存放出试卷的顺序及随机选题等功能。
    没怎么做过设计,不敢说没问题,我也急切期待有人指出我这些想法的不足之处。
      

  2.   

    SQLSERVER随便都支持上千万的数据,一个题库上千万的几率很低,所以没必要分表。如果是新版本的数据库,比如08或者2012,可以做表分区,