我正在为学校管理系统创建系统,并提出附加的数据库架构。
Database diagram http://oi40.tinypic.com/15x21ig.jpg
以下是系统的工作原理:
我是数据库规范化的初学者,如果数据库看起来不合适,任何人都可以给我一些提示,我会很高兴。
编辑:
此外,只有一个登录点。在上述情况下,在登录期间,用户必须从下拉列表中选择用户类型。该下拉选择将用于查询相应的表以登录系统。另一种方法是使用一个公共user
表,它将存储user_id, email, password, last_login_date, last_login_ip
,但会将其他详细信息存储在各个表中,例如student, parent, teacher
。那么,实现它的首选/正确方法是什么?
答案 0 :(得分:7)
您根本不会对GRADE_SECTIONS建模。
除非你的学校每个暑假都有大规模的拆迁和施工计划,否则教室将是相同的。每年都会更改分配。所以应该将CLASSROOMS分配给一个单独的GRADE_SECTION实体,而不是像现在那样合并SECTIONS和CLASSROOMS。
学生应被分配到GRADE_SECTIONS而不是课堂。
COURSES应该有许多EXAMS,而不是许多EXAM_RESULTS。学习数学和俄语的学生可以参加法语考试,这是没有意义的。
答案 1 :(得分:-1)
应将出席人数(很多)中的一行绘制到Classroom_Student(1)上。我认为不可能吸引学生参加。