Я пытаюсь определить таблицу для хранения оценок учеников для онлайн-табеля. Я не могу решить, как это сделать.
Оценки выставляются по предметам в триместровом периоде. Каждый триместр имеет среднюю оценку, общее количество пропущенных занятий и «восстанавливающуюся оценку» (я не знаю правильного термина в английском языке, но это дополнительный тест, который вы берете, чтобы попытаться поднять свою оценку, если вы ниже среднего) Я также должен хранить средний год и окончательный "выздоровление". По сути, это так:
|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
Я мог бы хранить эту информацию в одной строке БД, с каждой строкой, подобной этой:
1tAverage | 1tMissedClasses | 1tRecoveringGrade | 2tAverage | 2tMissedClasses | 2tRecoveringGrade
И так далее, но я подумал, что это будет трудно поддерживать, если школьник когда-нибудь решит выставить оценку по биместру или какому-то другому периоду (как это было до 3 лет назад).
Я мог бы также обобщить поля таблицы и использовать tinyint для пометки, для какого триместра эти оценки являются, или если они являются финалами года.
Но для этого нужно было бы написать множество подзапросов, чтобы написать табель успеваемости.
Что из двух лучше или есть какой-то другой способ?
Спасибо