[mysql] 조인관련 질문입니다. 0 4 2,457

by 물맛살얼음 [MySQL] join mysql insert [2018.11.28 16:02:49]


제목 없음.png (15,346Bytes)

안녕하세요 초보(신입)개발자 입니다..

지금 회사에서 연차관리 기능을 만들고 있는데요..

연차일수를 적어넣으면  기존 등록된 연차(기본값 20)가 연차일수만큼 줄어들게 설계중입니다.

member 테이블

member_sn primary key auto_increment
id key  
.. .. ..
.. .. ..
vacation   기본값(20),연차잔여일수

vacation 테이블

vacation_idx primary key auto_increment
member_id key 사용자 ID
.. .. ..
.. ..  
use_vacation   사용할 연차일수
remaining_date   연차 잔여일수

기본적으로 연차 등록화면에서는 vacation 테이블을 이용하여 등록하는데, 

연차잔여일수는 member테이블에서 가져오고

remaining_date 컬럼에 vacation 컬럼값을 넣었습니다.

그러다보니 vacation 테이블의 연차일수(use_vacation)를 등록했을 때 

member 테이블의 연차잔여일수(vacation) 컬럼값이 감소되게 하려는 쿼리문을 짜는데 번번이 실패해서,

이렇게 질문드립니다.

어떤식으로 쿼리를 짜는게 좋을 까요? 필요하다면 테이블구조가 바뀌어도 상관없습니다.

도와주십시오 ㅜㅜ 

첨부파일은 입력화면입니다..

 

 

by 마농 [2018.11.28 16:26:14]

잔여일수와 같은 파생 컬럼을 굳이 만들 필요가 없습니다.
1. 사원별 발생연차가 생성되고, (연도별로 또는 기간(from~to)으로)
2. 사원은 발생연차 - 사용연차로 잔여연차를 구하면 됩니다.
1 번에 해당하는 (사원별 연차 발생) 테이블이 존재하겠죠?


by 물맛살얼음 [2018.11.28 16:29:54]

답변감사합니다. 

member 테이블에 연차발생컬럼이 있구요

사용연차 컬럼은 없는데.. 그럼 사용연차컬럼을 추가하여 한개의 테이블로 진행하면 될까요?

말씀하신게 그런의미인지 잘모르겠네요 ㅎㅎ..


by 마농 [2018.11.28 16:37:21]

그런 의미가 아닙니다.
사원 테이블에 발생연차나 사용연차가 있어서는 안됩니다.
연차는 매년 새로 발생하기 때문에 연도별로 별도 테이블로 관리 되어야 합니다.
사용 연차는 연도별 기간조건으로 연차사용테이블에서 SUM 해서 가져오면 됩니다.


by 물맛살얼음 [2018.11.28 16:55:21]

아..알겠습니다

감사합니다 ^^!  

 

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