Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wspólni Znajomi
Forum PHP.pl > Forum > PHP
frytek92
Witam

Od niedawna kłopocze mnie pewna myśl jak jest wykonana opcja wspólni znajomy obecna między innymi na nasza-klasa czy facebook. W jaki sposób wykonane są tam tabele ze system wyszukuje wspólnych znajomych rozumiem przy 100 użytkownikach to da rade łaczyć i szukać ale jak to możliwe przy 10 milonach !

Prosze o odpowiedż.
Skie
Osobna tabela np. "Znajomi" z 3 polami - ID, osoba1, osoba2 z indeksowaniem osoba1 i osoba2 + jakieś porządne cache do tego. Można to zrobić np. na plikach tekstowych lub XML tak że baza nie będzie musiała być w ogóle ruszana (ew. dla bezpieczeństwa danych, kasowanie tych plików raz na dzień przez system).
frytek92
I Ta Tabela Kiedy Jest Aktualizowana Raz NP.Dziennie przez serwer czy przy dodadniu usera do listy znajomych questionmark.gif?
vokiel
Tylko wspólni znajomi?
Pobierasz listę znajomych dla zalogowanego i dla wybranego znajomego, porównujesz obie tablice. Albo nawet w jednym zapytaniu - ale to zależy od struktury bazy.

Trudniejsza, moim zdaniem, jest opcja "osoby, które możesz znać", tu trzeba przejrzeć listy znajomych znajomych zalogowanej osoby, wyszukać te, które występują więcej niż x razy i je zaproponować. Ew. można poszukać odpowiednich algorytmów typu "przeszukiwanie wszerz" czy inne operujące np na grafach.
frytek92
Faktycznie osoby które możesz znać znać ale mysle ze to na tej samej bazie wspólni znajomi czyli daja like i gdzie bedzie najwiecej zwrotów tam daja osoby które możesz znać haha.gif tak to umyśliłem

Jeżeli zle mysle to prosze poprawcie mnie a oto moje kolejne pytanie zeby nie zaczynac nowego tematu ;D

Załózmy ze chce stworzyć pętle w php oparta na mysql i mam np.100 000 wyników i teraz do kazdego uporządkuje np mam 100 000 użytkowników i stworze $user['1'],$user['2'] i tak do tysiaca czy to ostro zamuli skrypt jezeli wywował tylko 10-20 wyników questionmark.gifquestionmark.gif
krowal
A po co wyciągać 100000 rekordów a później korzystać tylko z 10 ? nie lepiej skorzystać z LIMIT ?
  1. SELECT * FROM tabela LIMIT 30,40;
frytek92
Własnie o to mi chodziło smile.gif Dziekuje i uważam temat za zamknięty

Ps.Każdemu dam pochwałe smile.gif
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.