본문 바로가기
DB/Modeling_Example

중학교 성적관리 프로젝트(part 3)

by Mr.DonyStark 2023. 10. 23.

중학교 성적관리 프로젝트(part 2) 이어서....

□ 상황
 ○ 과목, 학년별 담당 선생님이 따로있음
 ○ 시엄은 중간/기말고사 두가지임
 ○ 학생들은 학년, 반에 배정되며 반별로 학생들에게 고유 번호를 부여함
 ○ 각 반에는 담임 선생님이 배정되어 있음. 선생님 중에는 담임을 맡지 않는 선생님도 있음
 ○ 한 번의 학생은 대략 40명 정도이고 남녀 공학임
 ○ 석차는 남녀 공통 1등부터 순서대로 정함


▼▼▼▼▼▼1단계 : 키워드 추출▼▼▼▼▼

○ 과목 선생

○ 담당 선생
○ 시험 - 중간고사, 기말고사
○ 학생, 학년, 반, 배정, 고유번호(반별)
○ 담임, 선생님
○ 한반의 학생 40명
○ 남녀 공학
○ 석차(남녀 공통 1등부터 순서대로)


▼▼▼▼▼2단계 : 명사/동사에 따른 테이블 분류▼▼▼▼▼


○ 마스터 테이블(명사) = 기준 테이블
   * 한번 선정되어 모델링되면 수정이 될 일이 적음
   * 때문에 파악할 때 정확히 분석하여 모델링을 진행해야함
   * 코드성 인 고정 테이블은 모델링 후 데이터를 적재한후 봉인(Insert, update 방지)함
 - 학생(40명 가량, 반/반별 고유번호 존재), 학년, 반
 - 과목 선생님(담임/비담임)
 - 성적(석차 = 반/학년별 석차)   [테이블 내 속성정도로 인지, but 인터뷰 중 중요하다는 사실이 파악되면 마스터 테이블로 모델링]
 - 중간고사, 기말고사
○ 관계 테이블(동사)
 - 시험
 - 반 배정

 

□ 반영내용

 ○ 성적관련 테이블에서 개강된 과목기준의 강의와 성적정보를 적재하고자 tb_openLecture에서 seq 필드를 생성하였고 이 필드를 tb_score에서 참조하도록 설정

 ○ tb_subject와 tb_openLecture 를 통해 개강 과목과 개강되지 않은 과목을 알 수 있음. 추가로 tb_schoolgrade 테이블과의 관계를 통해 학년별 개강과목또한 파악 가능함

 ○ tb_teacher와 tb_schoolClass 테이블 설계를 통해 담임 / 비담임여부를 판단할 수 있음

※ ERD(Entity Relationship Diagram)작성시 관계를 형성하는 테이블은 보통 가운데에 위치함