문제:
다음과 같은 BOM(재료 명세서) 테이블이 있다고 가정합니다. 항목 및 해당 상위 ID. 목표는 트리 구조 형태로 항목의 계층적 표현을 검색하는 것입니다. 일반적인 단일 수준 쿼리나 재귀 함수를 사용하는 것은 비효율적일 수 있습니다.
해결책:
MySQL의 SQL 언어는 기본적으로 재귀 쿼리를 지원하지 않습니다. 이러한 제한을 극복하기 위해 사용자 정의 저장 프로시저(SP)를 생성하여 트리 순회 기능을 구현할 수 있습니다.
제안 SP:
다음 SP를 사용하여 트리 순회 기능을 구현할 수 있습니다. BOM tree:
사용법:
SP를 사용하려면 다음을 따르세요. 단계:
예:
예를 들어 다음 데이터가 포함된 BOM 테이블이 있는 경우:
+----+------+ | item | parent | +----+------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 3 | | 76 | 3 | +----+------+
GetFamilyTree 호출 (1)은 다음 계층 구조를 반환합니다 표현:
[ { "item": 1, "children": [ { "item": 2, "children": [] }, { "item": 3, "children": [ { "item": 4, "children": [] }, { "item": 76, "children": [] } ] } ] } ]
이 표현은 트리의 모든 하위 분기를 제공하므로 항목 관계를 효율적으로 검색할 수 있습니다.
위 내용은 저장 프로시저가 MySQL에서 계층적 BOM 트리를 어떻게 효율적으로 탐색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!