2013-12-12 3 views
0

나는 계층 적 디자인을 사용하는 코멘트 시스템을 추가하려고합니다.코멘트 시스템의 계층 적 데이터

post_id | parent_id 
    1   1 
    2   1 
    3   1 
    4   2 
    5   3 
    6   2 
    7   4 

내가 출력에 여러 가지 방법에 대한 몇 가지 조사를 해봤 얻을 수있는 데이터를 조작 : 여기에 게시물을 추적 내 데이터베이스에서 샘플/(더 많은 사람들이 답변으로 더 많은 행이 추가되어 있습니다) 답신입니다 당신이 필요로하는 것은 무엇인지, 그러나 어떤 방법이 코멘트 시스템에 가장 좋을지, 어떻게 할 것인가에 대해 확신 할 수 없습니다.

깊은 나무를 처리 할 수 ​​없어 인접 목록이 작동하지 않는다는 것을 알고 있습니다.

도와주세요.

+0

정말 * 깊은 * 트리가 필요하지 않습니다. 12 개 이상의 중첩 된 레벨은 사용할 수 없습니다. –

+0

@YourCommonSense 이는 응답의 수에 따라 다릅니다. – Bagwell

+0

사실. 중첩 된 응답 20 개를 읽을 수 없음 –

답변

-1

요즘 추세에 비추어 볼 때, AL은 상당히 수용 가능한 해결책입니다. 모든 현대 사이트는 모든 주석을 한 페이지에 덤프하는 경향이 있습니다. 정교한 SQL 로직은 필요하지 않지만 모든 주석에 대한 단순한 쿼리는 단일 기사에 속합니다. 하나의 루프를 배열에 저장합니다.

루프를 사용하지 않고 하나의 쿼리에서 모든 주석을 이미 정렬 한 경우 Materialized Path를 사용하면 편리합니다. 구현을 위해 많은 예제를 찾을 수 있습니다.

+0

경로가 구체화되면 경로가 매우 길 경우 (예 :'1,2,3,4,5,6,7,8,9,10 ... 1000')? 얼마나 천천히 될까요? – Bagwell

+0

또 다시 잘못 생각합니다. 1000 개의 중첩 된 레벨은 확실히 불가능합니다. 10-20은 견딜 수있는 숫자입니다. 1,2,3은 내가 믿지 않을 것입니다. 000100020003해야합니다. –

+0

또는 그 이상으로 base36으로 숫자를 변환하여 더 짧게하십시오. –