存储这些数据的最佳方式是什么?

What is the most optimised way to store this data?

我正在记录各种课程的学生成绩。学生参加各种设施,因此他们有各种学术日历。换句话说,学生可以在以下任一方面取得成绩:

那么,我是否应该将数据存储为 csv 字符串并将其展开,然后对数据进行任何计算等:

year_results str
year_end tinyint

或者只是根据需要存储它 it/as 它是并且有一堆不需要的类型的空值

semester_1 tinyint
semester_2 tinyint
trimester_1 tinyint
trimester_2 tinyint
trimester_3 tinyint
term_1 tinyint
term_2 tinyint
term_3 tinyint
term_4 tinyint
year_end tinyint

两者的优点/缺点?

我想我会有以下内容:

facilities(facility_id*,no_of_terms)

courses(course_id*,facility_id)

enrolment(student_id*,course_id*)

grades(student*,course_id*,term*,grade)

* =(组成)主键