아우터 조인 질문드립니다 0 3 956

by dbwlqgkq [SQL Query] [2018.03.04 23:02:10]


안녕하세요 아우터 조인에 대해 질문드립니다

 

1. 게시판 리스트에서 작성자의 이름을 가져오기 위해 회원정보 테이블과 조인

2. 리스트에서 부서정보를 가져오기 위해 회원정보 테이블과 조인

3. 리스트에서 코드에 해당하는 코드명을 가져오기 위해 코드상세 테이블과 조인

1, 2번은 비슷한 내용인데 회원정보가 없거나 회원 사용여부 혹은 퇴사구분 조건 등이 맞지 않는 경우 리스트에 해당 게시물이 보이지 않는 문제가 있고
3번 같은 경우는 해당하는 코드가 없거나 사용여부가 'N'인 경우 보이지 않는 문제가 있습니다

일반적으로 sql을 작성할때 앞에서 적은 문제때문에 아우터 조인을 하여 없는 정보는 공란으로 두고 게시물을 표시하는것이 맞는 것인지 
아니면 그냥 조인을 하여 회원정보가 없거나 코드가 없는 경우 표시하지 않는게 맞는건지 궁금합니다

1, 2, 3 의 경우 각각 어떻게 하시나요?

by 마농 [2018.03.05 08:23:33]

없는 코드는 애초에 등록이 불가해야 하겠구요.
코드를 미입력하는 경우가 허용되는지를 따져봐야 할 것 같습니다.
로그인 없이 게스트로 글 등록이 가능한지 여부를 따져봐야 할거구요.
사용여부나, 탈퇴여부로 조회에서 제외되는 경우는 없어야 할 것 같습니다.


by dbwlqgkq [2018.03.05 21:30:23]

답변 감사합니다

코드 미입력은 허용되지 않고 운영중 코드 삭제 또는 사용여부 N 으로 변경할때의 의미입니다

이런 경우가 있기때문에 보편적으로 sql 을 작성할때 아우터조인을 사용하는지 궁금합니다

그리고 사용여부나 탈퇴여부로 조회에서 제외되는 경우는 없어야 할 것 같다고 하셨는데 이 의미는 회원테이블과 조인할때 사용여부='Y' 탈퇴여부='N' 이런식으로 조건으로 걸지 말고 그냥 조인을 하는게 좋다는 의미인지 아니면 조건을 걸고 목록에 나오도록 아우터를 거는게 좋다는 의미로 말씀하신건지 알고 싶습니다

감사합니다


by 마농 [2018.03.05 21:36:50]

코드의 임의 삭제를 막아야 합니다.
코드는 삭제가 아닌 종료처리 하셔야 하며
원칙적으로 이런 부분 지켜주는 것이 좋으며
이것이 지켜지지 않을 것을 대비한 아우터 조인의 경우에
아우터 조인으로 인한 성능저하가 발생될 수도 있습니다.


종료처리 되었다고 해서 조회에서 제외되어서는 안됩니다. (네. 조건 주지 말라는 의미입니다.)
종료처리 된 코드는
새로운 자료를 입력할 때 입력되지 않도록 체크해야 하는 것이지
조회 할 때 조회에서 제외하라는 의미는 아니라고 생각합니다.

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