Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: technologia przechowywania danych taka jak np: na grono,net
Forum PHP.pl > Forum > Bazy danych > MySQL
szczypior
Witam

Ciekaw jestem jak można rozwiązać problem przechowywania dużej ilości danych przypisanych danemu rekordowi. Np: przechowywanie id znajomych danego uzytkownika w grono.net. Warto zauwazyc ze duża część osób korzystających z grona ma ponad 400 znajomych!!!

Jak myślicie ze jest to rozwiązane i jak najlepiej to zrobić, żeby nie zarzynać bazy?
Bo pomysł z komórką np: znajomi, w której będą przechowywane ich id na zasadzie: id1,id2,id3,... jest chyba nie najlepszym rozwiązaniem?
Daimos
ale mozesz w komorce przechowac tablice z numerami ID
devnul
rozwiązaniem jest relacja wiele do wielu
szczypior
które rozwiązanie jest lepsze? znasz może jakiś dobry artykuł na ten temat?
devnul
google -> mysql relacje
szczypior
no tak, relacje relacjami ale najpierw trzeba mieć gdzies zapisane kto jest czyim znajomym zeby mozna było zrobić relacje.

ale może przedstawie inny przykład, taki bardziej mnie interesujący.

Mam 2 tabele: użytkownicy i sondy

użytkownicy
id_uzytkownika | nazwa
1 | czesiek
2 | heniek
3 | romek

sondy
id_sondy | pytanie | tak | nie
1 | blabla | 2 | 1
2 | blabla2 | 1 | 1

w kolumnach "tak" i "nie" znajduje się ilość (nie ID!!!) użytkowników którzy głosowali tak lubi nie i odpowiednio zagłosowali na daną odpowiedz.

Pytanie jak najlepiej rozwiązać w bazie, zapisywanie który kliknął "tak", a który "nie" ?
AxZx
dodatkowa tabela:
sonda_id | user_id | odpowiedz
szczypior
aha

a jesli sond bedzie 1000 a na kazda odpowie 10 osob to nie bedzie to za duze obciazenie dla bazy?

a w "gronowym" przypadku tak samo?
w tabeli znajomi
id_usera | id znajomego?
bogdan89
ja chcialem jeszcze dodac, ze w Gronie mozna sprawdzic znajomych "po drodze", czyli ile osób jest pomiędzy mną, a jakimkolwiek gronowiczem.

Również jestem ciekawy w jaki sposób jest to rozwiązane.

Swoją drogą, pamiętam jak kiedyś baardzo często strona Grono.net padała z powodu przeciążenia. Odkąd przenieśli się na nowy serwer wszystko działa szybko i sprawnie.
devnul
@szczypior: są dwie drogi pierwsz - Twoja i druga dobra (relacje) to którą wybierzesz zależy od Ciebie - relacje dają ogromne możliwości - ale tabela pod nie musi także zostać odpowiednio stworzona inaczej faktycznie możesz mieć problemy z wydajnością
szczypior
Cytat(devnul @ 11.04.2007, 11:54:26 ) *
@szczypior: są dwie drogi pierwsz - Twoja i druga dobra (relacje) to którą wybierzesz zależy od Ciebie - relacje dają ogromne możliwości - ale tabela pod nie musi także zostać odpowiednio stworzona inaczej faktycznie możesz mieć problemy z wydajnością

poczytalem o relacjach i jako rozwiazanie w przykladzie bylo podane wlasnie zrobienie tabeli w ktorej beda tylko id w tym przypadku sondy, osoby i odpowiedzi. I połączenie ich relacjami.

Więc nie bardzo rozumiem jaka miałaby być ta lepsza droga i czym sie różni od tej mojej?
devnul
lepsza to właśnie ta o której czytałeś a nie ta którą proponowałeś na początku tematu
szczypior
aha, nie zrozumialem o który pomysł Ci chodzi, dzięki za pomoc smile.gif


ale swoją drogą ciekawe jak zrobione jest szukanie "najkrótszej drogi" do osób
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.