Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problematyka powiązań
spenalzo
post
Post #1





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Mam taki schemat:

(IMG:http://spenalzo.republika.pl/schemat.gif)
:arrow: http://spenalzo.republika.pl/schemat.gif
(wybaczcie za koślawy rysunek)

Jest to schemat powiązań pomiędzy użytkownikami:
R - root (ja)
R.1-R.6 - moi znajomi
A-H - znajomi R.1-R.6 (tutaj dla uproszczenia schematu po jednym)
A.1-H.6 - znajomi A-H

Oczywiście mogą potem być dalej różne inne powiązania (np. A.1.1.1-A.1.2.6 itd itp) - ale ja widze tylko od poziomu R do ostatniego na schemacie czyli A.1-H.6
Powiazania pomiędzy użytkownikami są zależne w taki sposób, że jeżeli dodam nowego znajomego to wszyscy (do 3 poziomu zaglębienia) widzą jego, ci na 2 poziomie widzą jego i jego znajomych na I poziomie itd. Natomiast ja widzę jego znajomych do 3 poziomu, czyli schemat się powtarza. Z kolei użytkownicy na 6 poziomie widzą moich znajomych na 3 poziomie.

W jaki sposób rozpracować strukture tych powiazań i w jakim stopniu przerzucić "ciężar" tych powiązań na php a w jakim stopniu na MySQLa?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bumelang
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 30.11.2003

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


Jak zawsze przeczytałem swojego posta dopiero po wysłaniu i stwierdziłem, że strasznie zaciemniłem tę procedurą do przeglądania wzdłużnego. Więc teraz zapisuję w pseudokodzie, żebyś się mógł przejść po drzewku i zobaczyć jak to działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) :
Kod
procedure ogladacz(wezel)

begin

  if(wezel != NULL)

  begin

    wezel.lft = i+1;

    weź pierwsze dziecko od lewej;

    while(sa jeszcze dzieci)

    begin

       ogladacz(dziecko);

       weź następne dziecko;

    end

    wezel.rgt = i+1;

  end

end


Pozdrowienia
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: 3.10.2025 - 02:26