DB에 트리 구조를 어떻게 담을 수 있을까? – SQL AntiPatterns 3장 『순진한 트리』PDF 공개!

By | 2011년 8월 7일

SQL AntiPatterns의 좋은 내용을 소개하기엔 에디터의 실력이 부족하여, 어떻게 블로그 글을 쓸까 고민하던 차에 동료께서 알려주신 조언은 바로, 샘플 챕터를 PDF로 공개하라는 것이었습니다.

제가 글을 쓰면서 내용이 왜곡될 위험도 줄이고 (글 쓰는 어려움도 줄이고), 독자들에게도 좋은 내용이 전파된다면 좋겠다는 판단에 이렇게 첫 번째 샘플 챕터인 「3장 순진한 트리」를 공개합니다.

「3장 순진한 트리」에서는 트리 구조를 DB에 저장하는 방법을 고민해 봅니다.
예를 들어, 아래 그림처럼 답글에 답글을 달 수 있는 형태의 웹 사이트에서, 한 글에 대한 모든 답글 목록을 SQL 쿼리 한 번에 불러오기란 어렵죠.

이를 해결하는 기초적인 방법은 답글 테이블에 parent_id 칼럼을 추가하여, 특정 글을 참조하는 것입니다. 하지만, 답글의 답글의 답글을 불러온다거나 특정 글의 답글 개수를 계산하기엔 SQL 쿼리가 이상해집니다. 또한 특정 답글을 삭제하기도 매우 까다롭죠. 특정 답글을 삭제할 경우, 이 답글에 달린 답글을 모두 수정한 다음에야 맨 처음 답글을 삭제할 수 있습니다.

이러한 문제점을 해결하는 방법으로는 ‘경로 열거’, ‘중첩 집합’, ‘클로저 테이블’이라는 대안을 제시하는데요. 여기부터는 내용을 설명할 자신이 없으므로 PDF를 직접 보시면 되겠습니다. ^^

cfile1.uf.14665F334E3A4EC10D9C25.pdf

많이들 퍼뜨려주시고, 다음 번 공개 챕터도 기대해주세요~
.

5 thoughts on “DB에 트리 구조를 어떻게 담을 수 있을까? – SQL AntiPatterns 3장 『순진한 트리』PDF 공개!

  1. 정영훈

    번역은 잘 된 것 같습니다. 구매리스트에 올려놔야겠어요~

    Reply
  2. 놀란놈

    돈주고 샀는데 검색해서 PDF파일이 있는걸 보고 된장!하고 놀라서 찾아왔더니 오픈한거였군여 ^^;;

    Reply
  3. Pingback: DB에 트리 구조 저장하기 | STANly

댓글 남기기