개발자

DB 카테고리 계층 구조 JSP에서 사이드바로 표출?

2024년 03월 25일조회 138

유동적인 사이드 메뉴 바를 설계하고자 합니다. 그래서 db에 카테고리 계층 구조를 closure table를 통해 설계했습니다. 아래 사진과 같이 category 테이블과 clo_table(클로저 테이블) 를 통해 계층 구조를 설게했습니다. 이를 가지고 JSP 뷰단에서 계층구조 형태로 사이드바를 구현하고자 하는데 도무지 감이 안잡히네요. 현재 db 환경은 mysql이고, spring project에서 mybatis를 통해 쿼리 작성하고 있습니다. 도움을 주시면 감사하겠습니다. (꾸벅꾸벅)

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

ㄱㅎㅁ님의 프로필 사진

혹시 한번에 조회할 필요가 없다면 둘다 전체 select 한뒤 tree구조를 만들면되지않을까 싶네요. Node를 8개 + RootNode 1개를 만든뒤 일반 Node는 Map<Int, Node> 의 map 저장한뒤 RootNode의 childList에 일반노드를 모두 다 넣고 ancestor descendant를 보시고 서로 다른케이스에 대해서 해당 방식처럼 수행하면될것 같습니다. 5번 row 1,4,1 map.get(1).addChild(map.get(4)) rootNode.removeChilde(map.get(4)) 7번 row 1,5,1 map.get(1).addChild(map.get(5)) rootNode.removeChilde(map.get(5)) 9번 row 2,6,1 map.get(2).addChild(map.get(6)) rootNode.removeChilde(map.get(6)) 11번 row 2,7,1 map.get(2).addChild(map.get(7)) rootNode.removeChilde(map.get(7)) 13번 row 3,8,1 map.get(3).addChild(map.get(8)) rootNode.removeChilde(map.get(8)) 결과 rootNode -1 --4 --5 -2 --6 -3 --8 -7 위와 같이 나오게 되며 별 이상이 없으면 하위 depth들도 마찬가지로 조작이 될것 같습니다. rootNode의 자식들만 뽑아다가 메뉴 만드시면 될듯 싶습니다. Node는 적절한 class를 구현하시면 될것같습니다. idx, name, childs 정도의 데이터를 구현할수 있을것 같습니다. 참고로 메뉴가 동적으로는 되지만 메뉴 순서는 어렵겠네요.

ccat님의 프로필 사진

스프링 데이터베이스 시큐리티 리액트 컴포넌트 스테이트 이런 구조를 보시는거면 간단하게 생각해서 메인메뉴 , 소메뉴가 있다고 생각하시고 idx name ancestor descendant 1 스프링 1 0 2 시큐리티 1 1 3 DB 1 2 3 리액트 2 0 4 컴포넌트 2 1 5 스테이트 2 2 이런식으로 짠 후에 반복문을 통해서 descendant 가 0 일때 는 메인메뉴로 두시고 나머지 1이상부터는 소메뉴로 두시고 하심 될 것 같아요

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!