inner join 관련 질문드립니다. 0 6 1,492

by 꼭된다 [SQL Query] inner join [2017.12.29 10:53:09]


안녕하세요.. DB초보라서 질문드립니다.

학생정보 테이블

학생인덱스 이름 나이
1 aaa 23
2 bbb 22

 

학생수업 테이블

학생인덱스 수업이름
1 수학
1 영어
1 과학
2 수학

 

학생교재 테이블

학생인덱스 교재

1

수학책
1 영어책
1 과학책
2 수학책

 

학생과제 테이블

학생인덱스 과제명
1 수학 프로젝트
1 과학 과제
2 수학 프로젝트
2 영어 과제

 

위와 같이 테이블이 있다고 할 때, 학생인덱스가 1인 학생의 모든 정보를 가져오고 싶습니다.

그러면 위의 테이블 4개를 inner join 해서 가져오는게 좋은가요 아니며 select 쿼리를 각 테이블 별로 4번 날려서 가져오는게 좋은가요?

(혹시 학생 정보에 대한 테이블을 만들 때 애초에 저렇게 4개의 테이블로 구성하는게 잘못되지는 않았나요?)

 

by 우리집아찌 [2017.12.29 13:03:08]

그냥 위의 자료만으로 봤을때는 테이블 설계에 문제가 있어보입니다.

학생수업/교재/과제 테이블간의 관계가 없어보이네요.  ( 수업ID,교재ID,과제ID, 교재-과제간의 MAPPING 등이 더 필요하리라 보여집니다.)  

이렇게 만든 의도는 모르겠지면 (RDB가 아닐가능성도 있네요) 현재의 상태로

한번에 학생의 모든 정보를 연관성있게 보여주기기는 힘들다고 보여집니다.

컬럼명도 학생인덱스보다는 학생ID가 파악하기 쉽지요.


by 꼭된다 [2017.12.29 14:15:18]

그러면 학생 기본 정보, 학생 수업, 교재, 과제 등 학생과 관련되 정보들을 DB에 저장하고 싶은데 어떤식으로 테이블을 구성해야할까요?


by 우리집아찌 [2017.12.29 14:17:45]

우선 요건이 있어야겠지요.

무작정 상상으로 만들수는 없습니다.

학생관리는 어떻게 할것이며,  수업에 교재는 무조건 한개만 쓴다(교재 하나로 수업두개쓸수도 있으니까요)

과제는 수업에 종속일지 교재에 종속적일지.. 이런 요건들이 필요합니다.

 


by 꼭된다 [2017.12.29 14:27:05]

답변 감사합니다. 죄송한데 한 번 더 여쭤볼께요..

음식점 관련 DB구요.

음식점 정보, 판매하는 메뉴, 원산지 정보 이 3가지를 저장하는 테이블을 구성하고 싶습니다. 어떻게 해야할까요??

음식점 정보 - 음식점 이름, 전화번호, 주소(하나만 존재할 수 있음)

메뉴 - 메뉴 이름(한 음식점당 여러개 가능)

원산지 정보 - 재료이름, 원산지 (한 음식점당 여러개 가능)

 


by 우리집아찌 [2017.12.29 14:53:32]

일터에서 이미지 반출이 안되네요..

주말을 이용해서 답변 드리겠습니다.

그전에 다른분(아마 신짝퉁님!! )이 올려드릴것 같지만요.. ^^*


by 꼭된다 [2017.12.29 15:08:38]

아이고 감사합니다. 새해 복 많이 받으세요 ^^

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