我试图为在线成绩单定义一个存储学生成绩的表。不过,我不能决定怎么做。
成绩是按科目分的,分为三个阶段。每三个月都有一个平均成绩,总缺课量和一个“恢复成绩”(我不知道英语中的正确术语,但如果你低于平均水平,这是你为了提高你的成绩而进行的额外测试),我还必须存储一年的平均成绩和最后的“恢复成绩”。基本上是这样的:
|1st Trimester |2nd Trimester |3rd Trimester
Subj. |Avg. |Mis. |Rec |Avg. |Mis. |Rec |Avg. |Mis. |Rec |Year Avg. |Final Rec.
Math |5.33 |1 |4 |8.0 |0 |7.0 |2 |6.5 |7.0
Sci. |5.33 |1 |4 |8.0 |0 |7.0 |2 |6.5 |7.0
我可以将此信息存储在一个db行中,每行如下:
1tAverage | 1tMissedClasses | 1tRecoveringGrade | 2tAverage | 2tMissedClasses | 2tRecoveringGrade
等等,但我想如果学校决定按双学期或其他阶段(就像3年前一样)评分的话,这会让曼丹很痛苦。
我还可以泛化表字段,并使用tinyint标记这些成绩是哪个学期的,或者如果它们是年度期末考试。
但这一次写成绩单需要很多子查询,也让曼丹很痛苦。
这两种方法哪一种更好,还是有别的方法?
谢谢
最佳答案
你可以试着用你的桌子来组织它。我没有所有的信息,所以我猜测你可能需要什么,或者用它做什么。
时间段:
ID(整数)
PeriodTimeStart(日期时间)
PeriodTimeEnd(日期时间)
名称(varchar(50)
学生:
ID(整数)
名字(varchar(60))
姓氏(varchar(60))
生日(日期时间)
[任何其他相关的学生领域
添加的信息…如联系人
信息等]
分级:
ID(整数)
studentid(整数)
坡度值(浮动)
时间周期id(int)
IsRecoveringGrade(布尔值)
未命中的类:
ID(整数)
studentid(整数)
ClassID(内部)
时间周期id(int)
DateMissed(日期时间)
课程:
ID(整数)
类名(varchar(50))
类描述(文本)
关于sql - 成绩数据库表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/254278/