首页 文章

学校管理MySQL数据库设计

提问于
浏览
1

我正在为学校管理系统设计一个数据库,面对几个问题,我想把它放在这里,有人可能会帮忙 . 我有一个学生表,其中包含学生详细信息和CLASS表,其中包含课程信息 . 在申请中,如果学生通过考试,则需要知道应该晋升哪个 class . 所以类表在我的设计中看起来像这样:

+----------------------+
|id | name | parent_id |
+----------------------+

其中 parent_id 是上一个类的id . 现在每个 class 都有不止一个流(例如, class 表格1可以有3个流:表格1A,表格1B,表格2B等),每个流程都有学生说表格1A有40个学生等等 . 所以我有一个这个设计的流表:

+---------------------------------------------+
| id    | student_id | class_id | stream_name |
+---------------------------------------------+

所以对于有40名学生的每个流,我将在流表中有40行,流名称将包含名称,如A,B,C或用户想要命名的任何名称 . 这是关于我的问题的最佳设计吗?这种设计会以任何方式影响系统的性能吗?有问题的最佳数据库设计方法是什么?

学生表载有关于学生的信息,如姓名和父母信息 .

EDIT: 每当学生注册或新学年注册时,流表都会更新 - 例如,如果我在表格1的A流中,则该 class (表1)中的所有学生都应升级为 class 表格1保留他们的流,所以如果我是1A表格,那么下一学年我将处于表格2A . 有一个Acade_YEAR表,其中包含学年的信息,例如它何时开始和结束以及所有类型的信息,还有一个EXAM_RESULTS表,用于存储每个学生在一个学年中特定流的结果 . 对于记录,我需要知道学生所学的所有流和课程 .

提前致谢

1 回答

  • 0

    你的方法是正确的 . 我想推荐以下内容:

    a)在流表中添加开始日期和结束日期,以便您可以计算学生在流中的哪个时期(将能够处理在年中开始或在年末之前离开的学生) . 这也可以处理重复的学生,因为他们将在新的一年中在同一个 class

    b)在考试结果表中,添加stream_id,class_id,student_id字段,以便您可以将考试与 class ,学生和流相关联 . 除了student_id和class_id之外,似乎还有重复的stream_id,但根据经验,当您不必加入流以查找考试所属的 class 和学生时,它会加快查询速度 .

相关问题