작성
·
250
0
안녕하세요. 궁금한게 많네요.
User -< JoinCall -> Call 관계에서 User가 참여하고 있는 Call의 특정 상태들에 대해 검색이 필요해서
상태별로 select를 한 후 merge 시키고 pagination 을 구현하였습니다.
성능에는 별로 문제가 없어보입니다. 보통 이렇게 설계를 하는지요?
그리고 현재는 3가지 상태만 있으니 조합이 많지 않아 select수가 많지 않은데,
만약 필터링 할 조건이 많다면 수많은 select를 수행후 merge를 해야 할 듯 합니다.
그럴때는 어떻게 select를 하는지 궁금하네요.
쇼핑몰이나 다나와에서 검색할 경우가 그럴듯 하네요.
확인 부탁드립니다.
감사합니다.
답변 2
0
User와 Call의 관계를 UserCall로 보셨군요. 그런데 Call에 대한 정의가 무엇인지 애매합니다. 어쨋든 UserCall에 여러 속성이 있어서 이것을 조건에 맞게 Select하시고 싶은거죠. 이럴 때는 StoreProcedure를 여러개 만들어서 각 조건별로 동작할 수 있게 만드는게 일반적입니다. 그리고 UserCall은 View를 만들어서 사용하시구요.
0
제가 정확하게 이해하고 있는지는 모르겠지만, 일단 답변을 드려보면
첫째, View를 만들어서 조인할 수 있는 테이블들을 다 엮어 놓으시고,
둘째, Stored Procedure에서 다양한 검색 필터 조건들을 파라메터로 설정하시고 쿼리를 작성하시면 왠만해서는 다 커버가 될 것 같아요. 만일 SP 하나로 안되면 몇개 정도만 필요에 따라서 만드시면 충분할 것으로 보고 있습니다. 답변이 안되었으면, 구체적으로 질문을 주시던 멘토링을 통해서 실제 내용을 펼쳐놓고 같이 보는 방법도 있습니다.