Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mechanizm Grono.net
Forum PHP.pl > Forum > PHP
telepawel
Witam,

Zastanawiałem się ostatnio nad stworzeniem podobnego aczkolwiek nie identycznego portalu i o ile większość
działów w/w portalu można zbudować bezproblemowo o tyle do chwili obecnej nie mam pojęcia jak rozwiązać
kwestię funkcji "najkrótsza droga do znajomego".

Dla niewtajemniczonych użytkownik może kliknąć w profilu innego usera ikonkę najkrótsza droga poprzez znajomych
gdzie widzi połączenie od 3 do 6 osób z którymi musiałby się skontaktować aby dojść do ostatecznego usera.

Pomyślałem ok przecież za każdym kliknięciem userzy nie będą obciążali serwera całościowym szukaniem zatem gdzieś
musi być to zapisane. Tyle, że teraz stworzenie bazy wszystkich kombinacji połączeń wymagałoby przy powiedzmy 20k userów
olbrzymiej bazy + wydajny serwer. Ponadto włączając taki skrypt szybko zapętliłby się w ilości informacji i mógł spowodować
wywrócenie serw.

Zatem pytanie konkretne. Czy przychodzi Wam na myśl jakieś innego rozwiązanie które skutecznie pozwoliłoby na zbudowanie tej funkcji ?
Moli
Na blogu grona kiedyś to opisywali. przy takiej liczbie użytkowników, jest to kewstia kilku "podań", więc oni mogą łatwo to rozwiązać.
GrayHat
Zasada najblizsza droga wyglada tak (maksymalnie 5 podan rak):
pobierz osobe ktora
1. ma mnie w znajomych lub zna osobe ktora
2. ma mnie w znajomych lub zna osobe ktora
3. ma mnie w znajomych lub zna osobe ktora
4. ma mnie w znajomych lub zna osobe ktora
5. ma mnie w znajomych

przepisz to sobie teraz na SQL winksmiley.jpg
dr_bonzo
A ja bym siegnal do literatury o algorytmach, przyklad na pewno walkowany 100tki razy.
qrees
Cytat(dr_bonzo @ 7.02.2008, 19:42:21 ) *
A ja bym siegnal do literatury o algorytmach, przyklad na pewno walkowany 100tki razy.

Nie no, można pobawić się w jakąś Dijkstrę, albo coś podobnego, ale problem jest taki, czy da się to na tyle zapisać, żeby nie generowało dużej liczby zapytań do bazy. Może lepiej zrobić jakieś jedno lub parę sprytnych acz rozbudowanych zapytań.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.