Powiedzmy że mamy oto taką przykładową strukturę zależności użytkowników:
(strzałki interpretują zależność master/slave User2 ma mastera jako User1 ale ma też slave'a User3 ale np. User8 ma jako master'ów User4, User3 etc. (kolejność nadrzędności jest ważna) sama długość gałęzi drzewa jest teoretycznie nieograniczona)
Dany User może mieć mnóstwo slav'ów ale tylko jednego master'a.
User1 -> User2 -> User3 -> User4 ->User5
User1 -> User6 -> User7
User6 -> User11
User4-> User8->User9->User10
(etc.)
Oczywiście takich drzewek mamy sporo
W bazie jest to prosto reprezentowane poprzez kolumny id, name, master
Teraz problem składa sie na funkcję która powie mi np. czy User999 ma jako master'a User2 lub czy User10 ma jako mastera User4
Oczywiście logicznie jest to do zrobienia. Wykonywać zapytania w SQL tak długo aż dojedziemy do kolesia który nie ma mastera i stwierdzimy że jest false lub go w końcu znajdziemy i będzie true no ale tak to trochę można bazę zajechać.
Można tez po prostu wczytać wszystkie rekordy do zmiennej tablicowej (lub przy pewnych założeniach jakąś większą część) i w php bawić sie w wyszukiwanie (odtwarzanie drzewa) ale przy bardzo dużej bazie (tablica rzędu 50MB) gdzie chcemy znaleźć kilka odpowiedzi da nam długi czas wykonywania skryptu.
Więc moje pytanie sprowadza się do tego czy takie wyszukiwanie mastera można załatwić odpowiednim zapytaniem w SQL'u poprze powiązanie kolumny master?