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

解决方案 »

  1.   

    另外,类似这样的系统,所有考试的成绩存放在一个成绩表中,还是每次考试各自单独用一个成绩表存放?
    我的想发是:如果用前者的思路话,那经过几次考试后,成绩表肯定记录很多不易管理,所以我想在delphi中用sql的createtbale语句,对每一次考试定义一个成绩表,用来保存一次考试的成绩。。
      

  2.   

    用一张成绩表,创建主从表,另外用一个表来存放科目.成绩表字段大概为ID USERID KMID CJ,就能实现对应了.
      

  3.   

    zklove(花花公子) :
    我明白你的意思:
    定义一个科目表:ID 科目名称 科目其他信息
    再定义一个成绩表:ID 考试时间 学生ID 科目ID 成绩
    这样就可以通过,考试时间+学生ID 查找该学生在某次考试中的各科目成绩了,并且每次考试的科目也可自己设定了。是这样吧?
    只是是用一张成绩表保存每次考试的成绩,记录会不会太多了,比如:
    一个3000人左右的学校,要保存6个学期的考试成绩,平均每次考7门课程,这样这个成绩表大概有12万左右的记录吧(不知道我算错没有?),数据会不会很大,我没做过项目,真的不清楚这算多还是算平常,对查询速度会不会影响很大?
      

  4.   

    而如果用sql的createtable语句,就可以为每次考试动态创建一个成绩表,这样各个表中的记录不会太多,且能长久保存每次考试的记录。在delphi中用createtable创建表是不是很麻烦,大家是不是一般不用?
    以前从没做过项目,所以我的想法也只是想法,至于可行性或者难易程度,我就不知道了。
    如果,我的思路实现比较麻烦的话。。zklove(花花公子) ,我会用你的想法的。。谢谢。。
      

  5.   

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

  6.   

    如果你每次考试定义一张表,那么时间常了,你的查询会很麻烦尤其是以前成绩
    如果一定要用,可以用 ADOX 控件
    在库中 引用MIRCOSOFT ADO EXTEND 2。7 比较方便
    但建议你还是考虑一下数据结构
    你所说的问题,上面几位的应能解决
      

  7.   

    谢谢大家的建议,zklove(花花公子) ,hatum(hatum) 你们的结构是最好的。
    steelxu5(人间漫步)说的对,如果每次考试定义表的话,以后查询确实比较麻烦。
    不过,我也会从简单方面考虑,就是定义一张成绩表,把中学所有的科目都作为字段,
    成绩表(考试时间,学号,班级,语文,数学,...)这样虽然冗余但对于统计总分和排名以及成绩查询可能要方便点。
    再次谢谢大家。。以后还有问题,再象大家请教。