2010-03-04 5 views
8

위치를 함께 연결하는 데이터베이스 테이블이 있습니다. 위치는 다른 위치에있을 수있는 위치에있을 수 있습니다. 나는 부모의 위치 부여, 아무리 깊은 모든 자손 위치를 얻을 수 없다 할 바로 사용 방법MySQL - 트리 구조 재귀

$sql = "SELECT id FROM se_locations_services WHERE parent_locationid IN 
(SELECT location_id FROM se_locations_parent WHERE parent_id = '$locationid')"; 

:

location (<id>, ....) 
location_parent (<location_id>, <parent_id>) 

여기에 하나의 깊이 아래로 갈 수는 MySQL/PHP의 MySQL은? 이러한 종류의 데이터를 관리

+0

http://stackoverflow.com/questions/587488/handling-hierarchy-data-in-database –

답변

20

계층 적 데이터를 관리하는 다양한 방법을 요약 mysql.com에 걸쳐 good-looking article있다 :

이 기능을 구현하는 방법에 대한이 문서를 참조하십시오. 귀하의 질문에 대한 완벽한 해결책을 제공하고 다양한 덜 단순하지만 빠른 접근법 (예 : 중첩 세트)을 보여줍니다.

+3

+1 여기에서 링크 된 매우 흥미로운 기사입니다. –

+0

기사를 더 이상 사용할 수 없습니다. –

+0

@Ed 백 머신이 여전히 가지고 있습니다. 업데이트 됨. –

0

MySQL의 문 이후 수 테이블 구조화 된 데이터 만 반환하면 반환 된 트리 구조는 어떻게 상상합니까?

[parent_id, child_id] 테이블을 사용하여 선택을 할 수는 있지만 임시 테이블이 필요하며 MySQL이 아닌 DB2에서 완료된 것으로 나타났습니다.

확인 MySQL의에 저장된 트리 같은 구조에서 구현이 문서 : http://articles.sitepoint.com/article/hierarchical-data-database/

1

MySQL 계층 적 기능을 기본 지원이 부족하다, 그래서 당신은 재귀 상태를 유지하기 위해 세션 변수를 사용하여 에뮬레이션해야합니다.