Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Zapytanie w drzewie zalezności
ShadowOfMonster
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.07.2009

Ostrzeżenie: (0%)
-----


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?

Ten post edytował ShadowOfMonster 8.07.2009, 04:02:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 16:16