오라클 기능중에.. (초보 입니다 ㅠㅠ) 0 2 1,610

by 차차 [2017.03.14 11:41:34]


항상 많은 도움 얻고 가는것에 다시 한번 감사 드린다는 인사 드리고 

궁금한걸 여쭈어 볼려고 합니다.

부서 와 업무 , 교육 시간에 따라 교육대상, 교육시간 부족, 신규 교육대상 등등 결과값을 내볼려고 하는데

A 라는 인원을 조회 했는데 부서는 그대로 인데 일도 그대로고 교육시간도 충족 했는걸 쿼리를 짜보고 싶었는데

제일 궁금한게 많은 인원들이 있다 가정하고 각각의 부서 이동이 있을수 있고 일의 변경이 있을수 있는데 

이것을 DB 로 어떻게 표현 해야 할지 도저히 감이 안옵니다.

변경 된 것들만 다시 저장 하는 테이블을 만들어야 하는건가요??

by 마농 [2017.03.14 13:47:18]

사번, 시작일, 종료일, 내용 형태로 이력관리를 별도 테이블로 관리하셔야 합니다.
최종 부서나 업무 등은 인사마스터에 컬럼을 별도로 둘 필요 없이 이력관리 테이블로부터 추출해서 사용하면 됩니다.
인사마스터에 해당 컬럼을 아예 추출속성으로 두기도 합니다.
추출속성을 두는 것은 추출속성의 값을 변경하는 별도 로직이 필요합니다.
이력관리 화면의 로직이 복잡해 지게 되구요.
데이터 정합성 문제가 있을 수 있구요.(이력의 최종부서와 인사마스터의 부서가 다른 경우)
데이터 정합성 측면에서는 추출속성을 안가지고 있는 것이 좋구요. <-- DBA 관점
조회 속도나 쿼리 작성 편의를 위해서는 추출속성을 가지고 있는게 좋습니다. <-- 개발자 관점


by 차차 [2017.03.15 08:54:57]

좋은 답변 감사해요 

아직 완벽히 이해는 못하지만 무엇이 중요한지는 알거 같습니다.

감사해요!

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