学校管理系统的数据库规范化

Web*_*ice 15 mysql database-design relational-database database-schema database-normalization

我正在为学校管理系统创建系统,并提出附加的数据库模式.

数据库图http://oi40.tinypic.com/15x21ig.jpg

以下是系统的工作原理:

  1. 一所学校有很多学生和老师.它还教授了许多课程(科目).年级可以分配许多课程.这些课程将分配给该特定年级的学生.
  2. 学生的水平分为等级和部分.学生可以达到五年级,但如果五年级学生数量巨大,他们会分成几个部分.例如:5年级A部分,5年级B部分.
  3. 学生被安置在独特的教室里.整个教室将是独一无二的.2010年的5年级A级课堂将与2011年5年级A级的课堂不同.
  4. 学生被分配到父母.家长可以在学校拥有一名以上的学生.
  5. 可以将一个或多个教室分配给教师.
  6. 学生每天都会参加学生的考试
  7. 会有很多类型的考试.为每个科目(课程)存储考试结果.

我是数据库规范化的初学者,如果有人能给我一些提示,如果数据库看起来不错,我会很高兴.

编辑:

此外,只有一个登录点.在上述情况下,在登录期间,用户必须从下拉列表中选择用户类型.该下拉选择将用于查询相应的表以登录系统.另一种方法是使用一个公用user表,它将存储user_id, email, password, last_login_date, last_login_ip但会将其他细节存储在各自的表中,例如student, parent, teacher.那么,实现它的首选/正确方法是什么?

APC*_*APC 7

您根本不会为GRADE_SECTIONS建模.

除非你的学校每个暑假都有大规模的拆迁和施工计划,否则教室将是相同的.这是每年都要改变的作业.因此,应将CLASSROOMS分配给单独的GRADE_SECTION实体,而不是像现在那样合并SECTIONS和CLASSROOMS.

学生应该被分配到GRADE_SECTIONS而不是课堂.

课程应该有许多考试,而不是许多考试成绩.学习数学和俄语的学生可以参加法语考试,这是没有意义的.