Mysql 存储此数据的最佳方式是什么?

Mysql 存储此数据的最佳方式是什么?,mysql,laravel,data-storage,Mysql,Laravel,Data Storage,我正在记录不同课程的学生成绩。学生参加各种设施,因此他们有各种各样的学术日历。换句话说,学生可以在以下任一方面取得成绩: 年度业绩(年终一分) 学期成绩(两个学期,每学期末打分,然后是学年) 三个月的结果(三个学期,在每个学期结束时做标记,然后是一年) 学期结果(四个学期,在每个学期结束时进行标记,然后在年度结束时进行标记) 因此,我是否应该将数据存储为csv字符串并将其分解,然后对数据进行任何计算,等等: year_results str year_end tinyint 或者只是按需要

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

  • 年度业绩(年终一分)
  • 学期成绩(两个学期,每学期末打分,然后是学年)
  • 三个月的结果(三个学期,在每个学期结束时做标记,然后是一年)
  • 学期结果(四个学期,在每个学期结束时进行标记,然后在年度结束时进行标记)
因此,我是否应该将数据存储为csv字符串并将其分解,然后对数据进行任何计算,等等:

year_results str
year_end tinyint
或者只是按需要/原样存储它,并为不需要的类型提供一堆空值

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)

*
=(组件)主键

创建一个实体间关系正确的数据库。谢谢,但我不是在寻找“关于如何构建整个数据库的完整答案”-我特别指的是一个关于如何从大小和速度的角度最好地存储成绩的表谢谢你的完整答案,但我不是在寻找schema—但本质上是/确切地说,存储在单个字段中的好处与存储在不同字段中的好处(同时有一些空字段).从数据库大小/数据库和查询速度/负载/操作的角度来看。我想我默认了!谢谢-我会接受你的回答,但我发现一些答案更符合我在下面寻找的答案。我的使用场景是一对一,所以我想我会选择我的选项(2)我在上面提到:我不会——但是,嘿,这是你的派对。为了让未来的访问者清楚,我最终得到的是学期1年级、学期2年级、学期3年级、学期4年级、年终年级、学术日历类型(确定是学期/学期还是学期成绩)。因为每门课程都有一组固定的值(一对一),我不觉得有必要单独做一张每行分数的表格。