나는 설계 한 주석 시스템을 가지고 있으며 중첩하지 않고 작업합니다. 이제 나는 사람들이 그 페이지에 일반적인 것이 무엇이든간에 직접적으로 의견에 답할 수있게하고 싶다. 그래서 부모 ID를 가리키는 내 데이터베이스에 상위 ID 열을 추가하는 방법에 대해 생각했습니다.중첩 된 주석 시스템 sql
이제 다음 단계 (이 문제를 해결하는 좋은 방법을 찾는데 문제가 있음). 중첩 된 주석이 부모에게 제대로 연결되도록 모든 공통된 "thing id"를 기반으로 모든 주석 (중첩 및 아닌)에 대한 데이터베이스를 쿼리 한 다음 정확한 순서로 표시하는 것입니다 ... 효율적인 방법이 있습니까? 재귀와 물건으로 이상한 쿼리 호출을 시작하지 않도록 이러한 모든 주석을 함께 주문 하시겠습니까? 모든 의견에는 다른 관련없는 데이터와 함께 타임 스탬프가 있습니다. 어떤 제안
Easyest 방법은 두 쿼리를 사용하는 것입니다. 첫 번째 질의는 부모를 모두 선택하고, 두 번째는 자녀를 선택합니다. 또는 한 번에 모두 선택하고 parent_id를 키로 사용하여 배열에 배치하십시오. –
실용적인 옵션은 아니지만 여전히 생각할 사항입니다. MongoDB와 같은 문서 지향 데이터베이스 (http://en.wikipedia.org/wiki/MongoDB)의 좋은 유스 케이스처럼 보입니다. . 게시물 내의 모든 게시물을 게시물에 저장 한 다음 해당 게시물의 각 주석에 중첩 된 주석을 저장할 수 있습니다. 게시를 위해 모든 데이터를 쿼리하는 것은 문서를 잡는 것만 큼 간단합니다. 조인은 필요하지 않습니다! 그러나 나머지 디자인은 MongoDB와 잘 작동하지 않을 수 있습니다. 그러나 제가 말했던 것처럼, 그것은 생각할만한 흥미로운 것입니다. – DaoWen
중첩이 어떤 수준이라도 깊다면, 아마도 당신은 어떤 종류의 재귀를 피할 수 없을 것입니다. PHP에 익숙하다면, MySQL에서 얻은 배열을 재귀 적으로 사용할 수 있습니다. – dezso