毕业设计做一个学生心理测试系统
系统可以有多个测试项目
每个测试项目有不同的测试题目及选项
题目的内容及个数是根据管理员提供的excel表来确定
我的一个设想是把(学生id,测试项目id,测试题目id,选项内容(每个题目的选项内容不一定相同))放在一个表里
但是假设学生有10000,测试项目是10,每个测试项目的测试题目是100个左右,那么感觉这张表太大,而且数据冗余太多
还有一种设想是建这样一张表(学生id,测试项目id,题目1,题目2,题目3···)
也就是说这种表的列数是根据excel表的内容动态生成
我知道这样可以用拼sql语句来完成
哪位大侠知道如何用hibernate根据excel动态生成表
或者提供更好的表的设计

解决方案 »

  1.   

    测试项目是一张表,测试题目和选项是一张表,学生信息是一张表,试卷是一张表,维护这四张表就好了,通过java解析excel表,然后出试卷
      

  2.   

    支持1楼的
    详细说下:
    学生信息一张表a,只是记录学生信息,测试项目一张表b,只记录测试项目。把题目与选项放一个表c,这个里面有 主键,题目,选项,以及对应的项目id。 还有就是试卷一张表d,字段是学生id,还有c表中的主键,维护四个表就ok了
      

  3.   

    如果每个项目就是一张试卷,那么就省了一张表,不过要记录学生选项,就要再加上一个答案表了,包括学生ID,试卷ID,题目ID,和选项字段
      

  4.   

    关键是把题目id和学生id放到一个表里会不会冗余太多,或者是这张表的记录太多
    因为10000个学生加100个题目就是1,000,000条记录
    能不能把(学生id,测试项目id,题目1,题目2,题目3···) 作为一条记录(这里好像要动态生成列)
    由于是第一次做真正的项目
    所以没什么经验
    大家给点意见
      

  5.   

    http://search.download.csdn.net/search/java%20%E8%80%83%E8%AF%95%E7%B3%BB%E7%BB%9F
    楼主去下了参考参考
      

  6.   


    才1,000,000条记录罢了,你想你有多少个学生呀,在说了这个数据对于Oracle来说算什么呢?
       MySql(10W) MsSql(100W) Oracle(1000W)