一个考试成绩管理系统,由于每次考试的科目不一定相同,这样用ACCESS设计库的时候,库中的成绩表的结构(有关课程的字段)就不好确定,所以我想在VC或者Delphi中用sql语句CreateTable(如果有同功能的API函数也可以)创建成绩表,不知道行不行或者方不方便?
我没有项目经验,上面只是我的想法,大家经验丰富,如果我的想法不行的话,你们一般是怎样解决的?
肯请大家指教。

解决方案 »

  1.   

    也可以换一个思路课程定义一个表
    ID 课程名称 课程其他信息
    1  语文
    2  数学成绩定义一个表(一个学期一个成绩表)
    ID 课程ID 学生ID 成绩
    1  1      2      100
    这样就不用根据科目不同来定义不同的表了
      

  2.   

    SQL语言中createtable语句好象不怎么麻烦呀?不知道你所说的麻烦是指哪个方面,是vc或者delphi中使用该语句在某些细节上很麻烦吗?
    如果在ACCESS中事先设计成绩表结构的话,我想到的是:把中学中开设的课程都加上去,包括体育美术和劳技...但这样是不是很冗余,并且也不能保证科目考虑的面面注到,比方说某些音体美专业班开设的专业课程。
    是不是我的思路有问题?希望大家指点。。
      

  3.   

    hahu(神仙?妖怪?谢谢!) 
    你的成绩表结构思路很好,我会考虑的。谢谢。。不过有一点我不太清楚:
    就是一个学期一个成绩表,是不是还是要用createbale动态创建?如果不每次考试(或每学期,实际上中学一个学期有很多次考试)创建相应的表,而都用一个成绩表的话,那考几次下来,这个成绩表记录肯定非常多,且不好管理。。
      

  4.   

    可以用sql语句 Create table创建表
      

  5.   

    roscoe(草上飞) 
    我明白你的意思了。。你的意思是:
     在hahu(神仙?妖怪?谢谢!)的思路上加上学期id(或者考试id,中学考试多,不是一学期一次,还有月考什么的,所以用考试id)只定义一个成绩表,这样通过:学期ID+学生ID,就可以找到该考生某学期的各科成绩了。是这样的吗?
    呵呵。。谢谢你们,我现在比以前要明了多了只是用一张成绩表保存每期考试的成绩,
    一个3000人左右的学校,要保存6个学期的考试成绩,平均每次考7门课程,这样这个成绩表大概有12万左右的记录吧,数据会不会很大,我没做过项目,真的这算多还是算平常,对查询速度会不会影响很大?
    另外,用createtable创建很麻烦是不,大家是不是一般不用。。
      

  6.   

    555。没人理我
    算了,我决定还是用最碍迟但最简单的方法,还是在ACCESS中定义成绩表,把中学所有的科目都作为字段。。反正中学的科目又不多,也不会开一些希奇古怪的课。
      

  7.   

    CREATE 不麻烦,是查询麻烦,如果你每个学期建张表,要查询N个学期的话.....
      

  8.   

    奇怪了,这两个有什么关系吗?字段变化关create table什么事啊?真不明白……只要你清楚你的表就可以了,代码还不是随便你怎么写?如果不行的话,就干脆给每一门成绩创建一个描述,成绩表里面的每一个条目就只有一门成绩,然后附上学生名字什么的,查询的时候两个表的联合查询就可以解决问题了(但是需要额外损失一点空间,因为每个学生的名字都要出现额外的课程数-1次)