mysql - 페이지 - 학사 관리 데이터베이스



학교 관리 시스템을위한 데이터베이스 정규화 (1)

학교 관리 시스템을위한 시스템을 만들고 첨부 된 데이터베이스 스키마를 제안합니다.

데이터베이스 다이어그램 http://oi40.tinypic.com/15x21ig.jpg

다음은 시스템 작동 방식입니다.

  1. 학교에는 많은 학생과 교사가 있습니다. 또한 많은 과목 (과목)을 가르칩니다. 학년 수준은 많은 과목을 배정 할 수 있습니다. 이 과정은 해당 학년의 학생들에게 차례대로 배정됩니다.
  2. 학생들의 레벨은 성적과 섹션으로 분류됩니다. 학생은 5 학년 일 수 있지만, 5 학년 학생이 많은 경우 섹션으로 나뉩니다. 예 : 5 학년 A 절, 5 학년 B 절.
  3. 학생들은 독특한 교실에 배치됩니다. 전체 교실은 독특합니다. 5 학년의 수업 2010 년의 A 절은 2011 학년의 5 학년 A의 Classroom과 다릅니다.
  4. 학생들에게 부모가 배정됩니다. 학부모는 학교에서 한 명 이상의 학생을 둘 수 있습니다.
  5. 하나 이상의 교실을 교사에게 배정 할 수 있습니다.
  6. 학생들을위한 출석은 매일 교사의 도움을받습니다.
  7. 많은 종류의 시험이있을 것입니다. 시험 결과는 각 과목 (코스)별로 저장됩니다.

나는 데이터베이스 정규화의 초보자이며, 데이터베이스가 괜찮은지 알 수 있다면 누군가에게 나에게 힌트를 줄 수 있다면 기쁠 것이다.

편집하다:

또한 로그인에는 한 가지 점만 남습니다. 위의 경우 로그인하는 동안 사용자는 드롭 다운 목록에서 사용자 유형을 선택해야합니다. 이 드롭 다운 선택은 각 테이블에 쿼리하여 시스템에 로그인하는 데 사용됩니다. 또 다른 방법은 user_id, email, password, last_login_date, last_login_ip 을 저장하지만 student, parent, teacher 와 같은 각 테이블에 다른 세부 정보를 저장하는 공통 user 테이블을 사용하는 것입니다. 그렇다면이를 구현하는 데있어 바람직한 / 올바른 방법은 무엇입니까?

https://src-bin.com


Answer #1

GRADE_SECTIONS을 전혀 모델링하지 않습니다.

여름 방학마다 매주 학교가 철거 및 건설 프로그램을 제공하지 않는 한 교실은 동일합니다. 매년 바뀌는 과제 입니다. 그래서 지금처럼 CLASSROOMS를 SECTIONS와 CLASSROOMS를 병합하는 대신에 별도의 GRADE_SECTION 엔티티에 할당해야합니다.

학생들은 교실이 아닌 GRADE_SECTIONS에 배정되어야합니다.

과정에는 많은 EXAM_RESULTS보다는 많은 EXAMS가 있어야합니다. 수학과 러시아어를 배우는 학생들이 프랑스 시험을 치를 수 있다는 것은 의미가 없습니다.





database-normalization