SQL 表结构设计

来源:百度知道 编辑:UC知道 时间:2024/06/17 01:45:18
三个表 代课教师表 科目表 成绩表
成绩表的字段是这样的
学号 姓名 语文 数学 英语
代课教师表
班级 科目名称 代课教师
科目表
ID 科目名称
成绩表中的语文、数学、英语就是科目名称
想生成
代课教师 总分 均分 及格率 优秀率
语文
数学
英语
成绩表中的语文、数学、英语就是科目名称

总也设计不好查询,经大伙提示,说成绩表的结构不对。
难道我的成绩应该设计成
学号 科目 成绩
001 01 98 001号同学语文98分
001 02 97 001号同学数学97分
这样的数据表是不是更麻烦了。请高手帮助设计一下

#三个表 代课教师表 科目表 成绩表
#成绩表的字段是这样的
#学号 姓名 语文 数学 英语

成绩表的字段应该是
学号 科目ID 成绩

学号 和 科目ID 两个字段作联合主键
避免一个学号有2个语文成绩的情况出现

#代课教师表
#班级 科目名称 代课教师

代课教师表的字段应该是
班级ID 科目ID 代课教师ID

班级ID 和 科目ID 两个字段作联合主键
避免一个班级有2个老师上语文课

#科目表
#科目ID 科目名称

科目表没有问题
科目ID主键

增加

学生表
学号 学生姓名 班级ID(班级表.班级ID的外键)
学号主键

班级表
班级ID 班级名
班级ID主键

教师表
代课教师ID 代课教师姓名
代课教师ID主键

#成绩表中的语文、数学、英语就是科目名称
#想生成
# 代课教师 总分 均分 及格率 优秀率
#语文
#数学
#英语
#成绩表中的语文、数学、英语就是科目名称
#总也设计不好查询,经大伙提示,说成绩表的结构不对。

应该是想生成

科目名称 代课教师姓名 总分 均分 及格率 优秀率



这个sql 还是有点小复杂的,
麻烦的地方是,需要结合成绩表,学生表,代课教师表三个
表,来确定一个学生的各科成绩到底是属于哪个老师的

具体的你自己练习一下吧

学号 科目 成绩
001 01 98 001号同学语文98分
001 02 97 001号同学数学97分

这个是正解,是标准。
也许查询会少许难写