在后端系统中设计表格应采用哪种方法?

时间:2019-04-06 09:43:51

标签: database

我的应用程序的用例:

  • 大学法律系有8个学期
  • 如果学生不及格,则有三种通过考试的机会
  • 每学期平均有8门科目

在后端系统中设计数据库表时,我想到了两个选择:

i)我应该为每个学期创建一个表格,该表格平均有8列,其中三个更改将有重复的ID,如果学生未通过考试,则他/她需要进行第二次机会考试。

ii)我应该创建三个表,每个表有8个学期,每个表有8个科目,这将是一个长表,包含64列。

我应该选择哪个选项,或者您还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

您提到的4个主要实体是:

  1. 学期
  2. 学生
  3. 主题
  4. 考试

因此作为入门者:

  1. 一个名为SEMESTERS,主键SEM_ID,列开始/结束日期,名称的表
  2. 一个名为STUDENTS,主键STU_ID,列名的表
  3. 一个名为SUBJECTS,主键SUB_ID,列名,PASS_MARK,MAX_FAILS的表
  4. 您需要一个交叉表来显示哪些学生参加哪个班级,因此,需要一个名为STUDENT_SUBJECTS(主要是STS_ID)的表。
  5. 现在,您可以有一个EXAMS表,它是SUBJECTS的子级,然后有一个名为STUDENT_EXAMS的表,它是EXAMS和STUDENT_SUBJECTS的子级,您可以在其中记录考试结果。或者简单起见,没有这个EXAMS和STUDENT_EXAMS表,而是在STUDENT_SUBJECTS上添加cols EXAM_RESULT1,EXAM_RESULT2,EXAM_RESULT3来记录考试结果。