저는 데이터베이스에 트리 구조가 있습니다 (예 : 직원 용).php tree bottom up
create table "employees" (employee_id, name, manager_id);
물론 manager_id는 해당 직원의 관리자와 동일한 employee_id (동일한 테이블)입니다.
의 트리 구조를 나타내는 배열로 쉽게 변환 할 수 있습니다 (상단에 CEO가 하나도 없지만 루트 노드에 여러 요소가 있음). 지금까지 괜찮아.
지금, 등록을 처리하기 위해, 나는 가기 나는 그 직원의 매니저가 표시되는 트리 구조, 사람들을 (표시해야합니다 것 employee_ids$registrations = array(3,7, 10);
의하지만 최대 배열이 나무의). 아무도 이것에 대한 알고리즘을 가지고 있습니까? 나는 나무에 그것들을 추가 할 수 있었지만, 2 명의 사람들이 1 명의 매니저를 공유 할 때 서로 다른 가지를 함께 관리하지는 않았다.
직원 3과 10 (위의 cfr)은 ID 15의 동일한 관리자를 공유하고 직원 7은 ID 23의 관리자를 보유하고 있으며 두 관리자는 ID 33의 동일한 관리자에게보고하고 자신의 차례에는 45로보고합니다. 내가
array('45'=>array('33'=>array('15'=>array(3))));
를 얻을 수 및 직원 7 반복하면서, 나는 지점을 구축 관리 배열 I 직원 3로 시작하는이 구조, 예를 구축 관리하는
array('45'=>array('33'=>array('23'=>array(7), '15'=>array(3,10))));
필요 했어
array(23->array(7))
하지만 어떻게 새 배열을 기존의 병합으로 병합 할 수 있습니까? 나는 23의 관리자가 33 인 것을 알고 있지만, 나는 그것을 나무에 추가 할 필요가 있음을 발견하고, b) 그것을 나무에 덧붙여 정확한 위치에 놓는다. 아무도?
나는 다운 투표의 이유를 알 수 있습니까? –
좋은 힌트, 그러나 문제 자체에 해결책 없음 – Eineki
Merianos Nikos : 재미있는 연결, 감사합니다. 하지만이 기사의 첫 번째 기사에서 "수정 된 Preorder Tree Traversal"데이터베이스 스키마를 사용하여 문제를 해결하는 방법은 여전히 불분명합니다. 문제는 여전히 지속됩니다. 두 번째 지점을 트리에 배치해야하는 위치를 찾는 방법은 무엇입니까? – user410932