인프런 커뮤니티 질문&답변

굿데이님의 프로필 이미지
굿데이

작성한 질문수

RDBMS Modeling 실습

멀티 필터 select를 위한 설계

작성

·

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 하나로 안되면 몇개 정도만 필요에 따라서 만드시면 충분할 것으로 보고 있습니다. 답변이 안되었으면, 구체적으로 질문을 주시던 멘토링을 통해서 실제 내용을 펼쳐놓고 같이 보는 방법도 있습니다.

굿데이님의 프로필 이미지
굿데이

작성한 질문수

질문하기