db 설계 시 질문 0 2 2,010

by 정수리형 [DB 모델링/설계] [2023.03.02 13:27:24]


db 설계 중 궁금한 부분이 있어 질문을 올리게 되었습니다.

아래와 같이 학생테이블, 신청1, 신청2 테이블이 있습니다.

 

학생의 경우 신청1, 신청2를 모두 할수 있는 상황이여서

 

학생테이블을 따로 놔두고 신청1,2테이블과 조인하여 사용하려고 합니다.

 

애매한부분이

 

신청정보를 등록/수정할 때 학생정보도 같이 등록/수정하게 되는데

이때 학생테이블/신청 테이블 2개를 등록/수정하는것보다

학생테이블을 삭제하고 학생테이블 컬럼을 신청1,2 테이블에 생성하여

등록수정할때 신청테이블만 등록/수정하는게 나을까요?

 

 

 

 

 

학생테이블 
학생이름
학생주소
학생연락처
부모이름
부모주소
부모연락처
 
신청1테이블
신청일
자격여부
 
신청2테이블
신청일
자격여부

 

by 우리집아찌 [2023.03.02 14:27:25]

1. 신청1 ,신청2 , 신청3... 신청999 까지 늘어나면 컬럼을 무한히 증가시키는것이 맞을까요?

- 답은 아니요 일겁니다. 신청 테이블을 따로 가져가야하겠죠..

 

2. 신청1 ,신청2 , 신청3... 신청999 까지 늘어나면 테이블을 무한히 증가시켜야 하는것이 맞을까요?

- 답은 아니오 입니다. 신청 테이블에 구분값등으로 신청1~신청999를 가져가는것이 맞을겁니다.

  다만 신청마다 몇억건이 된다 하면 얘기가 달라지겠지만 일반적이라면 신청테이블 하나로 가져가야 맞습니다.

 

- 정규화

http://wiki.gurubee.net/pages/viewpage.action?pageId=1966769


by 포동푸우 [2023.03.05 19:48:39]

이런 경우는,, 우리집아찌 님이 설명해 주신 대로..  학생(정보), 과목(정보), 수강신청(내역) 으로 분리하는 것이 일반적 입니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입