작성
·
331
0
현재 실전 스프링부트와 jpa활용1편을 수강중입니다. 엔티티 클래스 개발2 에서 카테고리 클래스를 만들 때, 부모 객체는 왜 생성하는지 이해가 되지 않습니다..! 이미 카테고리 클래스 자체가 부모 클래스가 되는게 아닌가요..?
답변 1
3
안녕하세요. ㅎㅅㅎ님, 공식 서포터즈 코즈위버입니다.
카테고리의 구조는 부모와 자식관의 관계가 1:N 으로 무한히 확장가능하다는 특징이 있습니다. 쇼핑몰은 보통 3~5depth 의 카테고리를 갖습니다. 이 때 테이블 설계를 depth 만큼 속성을 추가할 경우 (가령 3depth, 대/중/소 카테고리를 사용할 경우,카테고리 테이블에는 '대카테고리', '중카테고리', '소카테고리' 속성을 생성) depth 가 늘어나거나 할 경우 카테고리 테이블에 속성을 추가해야 하는 불편함이 있습니다. 그래서 보통 parent_id 속성 하나만 두고 테이블을 재차 조인하여 조회하는 방법을 사용합니다.
아래와 같은 카테고리 테이블을 생각해주세요.
category_id(P.K) | parent_id | name
1 | null | 프로그래밍
2 | 1 | 자바
3 | 1 | C#
4 | 2 | JPA
5 | 2 | 스프링부트
이처럼 현재 카테고리가 Parent를 가지고 있느냐 아니냐 정보가 필요하여 카테고리 엔터티에 parent와 children 속성을 추가하는 것입니다.
또 parent, children 이 모두 있어야 부모 카테고리와 자식 카테고리를 왔다갔다 하며 탐색을 할 수 있습니다.
감사합니다.