개발자
유동적인 사이드 메뉴 바를 설계하고자 합니다. 그래서 db에 카테고리 계층 구조를 closure table를 통해 설계했습니다. 아래 사진과 같이 category 테이블과 clo_table(클로저 테이블) 를 통해 계층 구조를 설게했습니다. 이를 가지고 JSP 뷰단에서 계층구조 형태로 사이드바를 구현하고자 하는데 도무지 감이 안잡히네요. 현재 db 환경은 mysql이고, spring project에서 mybatis를 통해 쿼리 작성하고 있습니다. 도움을 주시면 감사하겠습니다. (꾸벅꾸벅)
답변 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 정도의 데이터를 구현할수 있을것 같습니다. 참고로 메뉴가 동적으로는 되지만 메뉴 순서는 어렵겠네요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!