하나의 테이블에서 2개 테이블 연관관계를 맺고 싶습니다. 0 1 524

by 구루비 [SQL Query] db [2021.03.12 00:21:18]


예를들어 회원 테이블이 있다고 가정하겠습니다.

 

이 회원 테이블은 직업에 따라 각각 다른 테이블에 연관 관계를 맺습니다.(당연히 이렇게 테이블 분리하는것보다 더 좋은 방법이 있겠지만 예시입니다.)

member

no(pk) developer_no(developer 테이블 PK) planner_no(planner 테이블 PK)
1 1 null
2 2 null
3 null 1

 

developer

no(pk) name  
1 홍길동  
2 김박사  

 

planner

no(pk) name  
1 김태희  

 

 

테이블 보시면 이해가 될련지 모르겠습니다.

만약 member 테이블에 각각 직업에 따라 다른 테이블하고 매핑 관계를 맺어있습니다.

그래서 member 테이블에 2개 각각 테이블의 FK값을 추가했습니다.

만약 해당 member 데이터에 developer라면 해당 developer_no 값이 있고 planner_no값은 null이 있습니다.

그 반대는 반대입니다.

 

이렇게 테이블 구성하는것이 맞는지 알고 싶습니다.

이렇게 구성하면 developer_no, planner_no 각각 NOT NULL을 할수 없어서 찜찜하네요.

 

또 생각해보면 다른 단점이 있겠지만.

만약 테이블 member, developer, planner 존재해야 되는 상황이라면 이렇게 테이블 구성하는게 올바른 길인가요?

 

답변 부탁드립니다! 

 

감사합니다!

 

by 뉴비디비 [2021.03.12 00:51:51]

member, developer, planner 를 유지해야 되는 상황이면, 
아래 샘플처럼 구분하셔도 운용하실때 좀 더 나을 수도 있습니다.  (정답은 아니고 단순 참고 상황 입니다)
 

No.(PK) 연계테이블PK 연계테이블구분
1 1 developer
2 2 developer
3 1 planner
4 3 developer

 

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