我试图为在线成绩单定义一个存储学生成绩的表。不过,我不能决定怎么做。
成绩是按科目分的,分为三个阶段。每三个月都有一个平均成绩,总缺课量和一个“恢复成绩”(我不知道英语中的正确术语,但如果你低于平均水平,这是你为了提高你的成绩而进行的额外测试),我还必须存储一年的平均成绩和最后的“恢复成绩”。基本上是这样的:

      |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/

10-10 05:22