![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 11.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
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 ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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ć.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 566 Pomógł: 18 Dołączył: 23.08.2003 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() -------------------- *Note: No animals were killed durning the construction of this post.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A ja bym siegnal do literatury o algorytmach, przyklad na pewno walkowany 100tki razy.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
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ń. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:16 |