学科一个表,提供学科ID;
班级一个表,提供班级ID,其学科ID连接到学科表;(多对一)
学生一个表,其班级ID连接到班级表;(一对多)选定班级ID,得到学科ID,在学生表中查找具有班级ID的学生清单,即可。另:这种简单的数据库问题,被高手看到是不屑于回答的,幸好我不是高手。

解决方案 »

  1.   

    方案:
    1、学科维护表       主键学科ID;
    2、班级维护表       主键班级ID;
    3、学生基本情况表   主键学生ID;
    4、学期表           主键学期ID;
    4、学习成绩表       主键学生ID、学期ID、学科ID,列包括学科分数。
      

  2.   


    我想大家没有明确我的意思,请先看看下面的数据表在数据表中 值得注意的是 第一行 和 第一列 因为,他们是需要根据其他表的变动而变动,也就是他们都是灵活的。1.一个数据表中存放一次成绩,那么有很多班级,很多次成绩的话,这个将会造成数据库管理混乱(数据表过多,如果20个班级10次考试成绩就有200个数据表。),特别是当用户使用的是虚拟主机的时候,他仅有的一个数据库却要创建n多的表,本人就觉得难已管理,以及造成数据库混乱。2.如果将所有班级各次的成绩存放在一个数据库表中,这样一来,我们就很难确定数据表中固定的字段了。比如第一行中的学科,这个就很难搞定了
    班级不用的学生,他的考试科目个有不同,并且各个学生的考试科目都是根据成绩登录前,当前班级科目而定的。这样好难处理,唯一的做法就是将这个数据以班级为单位,创建成一个数组,存放在text字段里。但是这样以来呢,对以后学生成绩的数据分析很不利,也散失了数据库高效的查询效率。
    对此我感到很郁闷,不知道怎么设计好这个数据库?请赐教!!!谢谢/ 感谢您认真的阅读该贴以及您的答复。!!!———————————————————————————————————————
    学号|姓名|语文|高数|工程数学|英语|电工|计算机组成原理|网络|VB|C语言程序设计|汇编语言|数据库|      .......  数据可增加
    2003061115|方海|-|-|7|465|797|77|99|797|7|797|8|    .......  数据可增加
    2003061116|罗静|-|-|-|87|97|7|7997|-|79|788|-|    .......  数据可增加
    2003061117|温华|-|-|-|78|68|7|-|8|9|8|89|    .......  数据可增加
    2003061118|曾英|-|-|-|-|78|797|979|-|9797|9|6|    .......  数据可增加
    2003061119|蔡蓉|45|546|46|656|678|68|686|67|76|767|76|    .......  数据可增加
                            .
                            .
                            .数
                            .据
                            .可
                            .增
                            .加
                            .
                            .
                            .
                            .
                            .
                            .
                            .———————————————————————————————————————
      

  3.   

    学科表:
    学科号 | 学科名
    unique (学科号)学生成绩表:
    学号 | 姓名 [ | 班级] | 学科号 | 成绩
    unique (学号[, 班级], 学科号)
    [index (班级)]
    index (学科号)
      

  4.   

    to: lxf_1976(小木) ( ) 信成绩 这里 
    你怎么安排??
      

  5.   

    不太理解你要如何处理成绩?!每人每门学科的成绩一条记录!剩下的就是如何统计了!例如:
    学生的所有成绩
    select * from 学生成绩表 where 学号=该学生学号班级某门学科的平均分:
    select 班级, 学科, avg(成绩) from 学生成绩表 where 班级=该班级 and 学科号=该学科号浅见,不知道是否文不对题!
      

  6.   

    不太理解你的成绩要怎么处理?!每个学生每门学科的成绩一条记录!剩下的就是如何统计了!例如:
    某学生的所有成绩
    select * from 学生成绩表 where 学号=查询学生学号某班级某学科的平均成绩
    select 班级, 学科, avg(成绩) from 学生成绩表 where 班级=查询班级 and 学科=查询学科浅见,不知道是否文不对题!