hierarchy 구조를 DB로 표현할 때 0 1 2,120

by kjp [DB 모델링/설계] 모델링 [2020.06.01 19:21:38]


Category라는 테이블을 만들려고 하는데,

만약 상위 카테고리, 하위 카테고리와 같은 hierarchy구조를 DB로 표현해야한다면,

(예를 들어 책>컴퓨터책, 책>잡지, 책>영어, 책>문학>소설 등등)

아래와 같이 모델링 하는 것이 바람직한가요?

 

table tb_category (

     category_id varchar   // pk
     .......
     parent_category_id varchar // fk   (tb_category의 category_id 참조)

)

최상위 category는 parent가 없으므로,
parent_category_id는 null일 수도 있게됩니다.

 

단순히 생각하면 저렇게 하면 될 것 같은데, 문제점은 없는지...

모델링 초보라 일반적으로 hierarchy한 구조는 어떻게 표현하는지 궁금합니다.

 

 

by 마농 [2020.06.02 08:02:16]

네. 위와 같이 자기 참조 구조로 만들면 됩니다.
category_nm 항목 하나 더 추가해 주면 되겠네요.
다만, 이게 실제 사용하기 편한 형태여야 하겠지요.
계층쿼리를 지원하는 DB 와 버전 이라면 이대로 사용하면 될것이고,
그렇지 않은 경우라면 구현하기 쉽게 반정규화 하여 사용하시면 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입