2010-07-15 2 views
6

사용자 의견이있는 표가 있다고 가정 해 보겠습니다. 첫 번째 수준의 주석에는 첨부 된 문서에 대한 참조가 있습니다. 더 깊은 수준의 주석은 설계 상이 참조를 가지지 않지만 부모의 주석을 참조합니다.추가 렌더링을 위해 데이터베이스 트리에서 노드 트리를 가져 오는 가장 좋은 방법은 무엇입니까?

이 데이터베이스 구조의 경우, 주어진 아티클에 대한 모든 주석을 가져온 다음 html 형식으로 렌더링하는 가장 효율적인 방법은 무엇입니까? (우리는 첫 번째 레벨에 대해 약 200 개의 설명과 20의 가장 깊은 레벨을 가지고 있다고 가정하십시오.)

+0

참고 : 제목에 "모범 사례"가 표시되지만 질문은 "가장 효율적인 방법"을 묻습니다. 이들은 반드시 동일하지 않습니다. –

답변

9

일반적으로 클로저 테이블이라는 디자인을 권장합니다. Models for Hierarchical Data with SQL and PHP :

내가이 프리젠 테이션을 설계 What is the most efficient/elegant way to parse a flat table into a tree?

에 내 대답에 예를 참조하십시오. 나는 490k 노드를 가진 계층 적 데이터의 집합에서 0.3 초 ​​만에 트리를 렌더링하는 PHP 애플리케이션을 개발했다.

여기 클로저 테이블에 대한 블로그 : Rendering Trees with Closure Table.

나는 내 책에서 계층 적 데이터를위한 다양한 전략에 대한 장을 썼다.

5

가장 효율적인 방법은 Quassnoi이이 주제에 대한 기사를 작성했습니다. Hierarchical queries in MySQL: finding leaves

  • Hierarchical queries in MySQL: finding loops
  • 관련 문제