学生成绩表设计:如何选择最佳方案以优化数据存储和程序编写复杂度?-灵析社区

古典研发君

如何设计学生成绩表? 请教大佬们,中小学学生成绩表的设计 **方案一:** 学生成绩表 * StudentID(学生ID):关联到学生信息表。 * CourseID(课程ID):关联到课程信息表。 * ExamId(考试ID):关联到考试信息表。 * Score(分数):学生的课程分数。 这样设计的话,学生2000人5门课20次考试就20万条数据了,感觉数据量太大了点 **方案二:** 学生成绩表 * StudentID(学生ID):关联到学生信息表。 * ExamId(考试ID):关联到考试信息表。 * CourseScore1(分数):学生的课程1分数。 * CourseScore2(分数):学生的课程2分数。 * CourseScore3(分数):学生的课程3分数。 * CourseScore4(分数):学生的课程4分数。 * CourseScore5(分数):学生的课程5分数。 这样设计行数是少去了,但是又不够弹性,万一课程数多起来程序又要麻烦了 请问有经验的大佬还有其它设计方式么?利弊如何选择好

阅读量:168

点赞量:0

问AI
-- 学生信息表: CREATE TABLE StudentInfo ( StudentID INT PRIMARY KEY, Name VARCHAR(100), -- 其它学生基本信息 ); -- 课程信息表 CREATE TABLE CourseInfo ( CourseID INT PRIMARY KEY, CourseName VARCHAR(100) ); -- 考试信息表 CREATE TABLE ExamInfo ( ExamID INT PRIMARY KEY, ExamName VARCHAR(100), ExamDate DATE ); -- 学生成绩表 CREATE TABLE StudentScores ( StudentID INT, ExamID INT, Scores JSON, PRIMARY KEY (StudentID, ExamID), FOREIGN KEY (StudentID) REFERENCES StudentInfo(StudentID), FOREIGN KEY (ExamID) REFERENCES ExamInfo(ExamID) );