Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Buddy List
Forum PHP.pl > Forum > Bazy danych > MySQL
.dragonfly
Hi! W aktualnym projekcie mam zamiar wbudowac opcje buddy list (lista znajmych). Oczywiscie oparte bedzie to na badzie danych MySQL. W zalozeniach liczba przyjaciol ma byc nieograniczona. Potrzebuje zalozenia techniczne takiego systemu.
spenalzo
Drzewka? Jeżeli tak to poszukaj na php Pro ("Problematyka powiązań") i/lub na Bazy Danych ("Drzewka, keszowanie a wydajność") - tam masz opisaną moją mordęgę smile.gif
.dragonfly
Po chwili przemyslenia problemu jeszcze raz doszedlem do rozwiazania. w tabeli z userami w polu user_buddy bede przechowywal id wszystkich "Znajomych" danego uzytkownika oddzielone przecinkami. Caly ten string bede dzielil od przecinka do przecinka i osobno bede pobieral info dla kazdego z nich tzn. czy user np. jest w tej chwili online i czy np. w jego polu user_buddy znajduje sie moje id (czy ma mnie na liscie). Czy takie rozwiazanie jest dobre dla bazy uzytkonikow nie wiekszej niz 2000-5000 wpisow?
menic
Ja mam inny pomysł. Nie wiem jak sie to ma, ale widziałem takie rozwiązanie w duużym projekcie komercyjnym, wiec coś w tym musi być winksmiley.jpg
Tworzysz tabele z 2 polami. Dajmy np. user1 i user2.
Ustawiamy dla tych pół indexy. I każde powiązanie miedzy użytkownikami zapisujemy jako nowy rekord. Jeżeli menic jest przyjecielem kAzu^ to tabelka bedzie taka
Kod
user1 | user2

---------------

menic|kAzu^

Oczywiście w przy takim zastosowaniu ważne są indexy.
I co myslicie o takim rozwiązaniu :?:
spenalzo
Proponuje się przyjrzeć problemowi jaki miałem - masz tam ciekawe zapytanie i strukture jakiej potrzebujesz.
.dragonfly
@menic podal bardzo dobre rozwiazanie. Trzymajac dane o znajomych w tabeli xos_friends z 2 polami znacznie ulatwiam sobie prace.
Kod
ten_ktory_ma_go_na_swojej_liscie | ten_ktory_jest_na_liscie

---------------

kAzu^|menic


[sql:1:8f2f420ea1]SELECT ten_ktory_jest_na_liscie FROM xos_friends WHERE ten_ktory_ma_go_na_swojej_liscie='kazu'[/sql:1:8f2f420ea1]
W ten sposob otrzymuje wszystkich uzytkownikow ktorych kAzu ma na swojej liscie. Napewno doczytam jeszcze razwiazanie #specnalza. A noż/widelec będzie lepsze biggrin.gif
DeyV
PRO -> BAZY DANYCH
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.