szczypior
10.04.2007, 11:11:16
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
10.04.2007, 12:06:25
ale mozesz w komorce przechowac tablice z numerami ID
devnul
10.04.2007, 12:08:52
rozwiązaniem jest relacja wiele do wielu
szczypior
10.04.2007, 15:11:02
które rozwiązanie jest lepsze? znasz może jakiś dobry artykuł na ten temat?
devnul
10.04.2007, 15:20:49
google -> mysql relacje
szczypior
10.04.2007, 19:27:04
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
10.04.2007, 20:14:10
dodatkowa tabela:
sonda_id | user_id | odpowiedz
szczypior
10.04.2007, 20:20:27
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
10.04.2007, 23:17:32
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
11.04.2007, 10: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ą
szczypior
11.04.2007, 14:26:34
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
11.04.2007, 14:31:31
lepsza to właśnie ta o której czytałeś a nie ta którą proponowałeś na początku tematu
szczypior
11.04.2007, 14:40:47
aha, nie zrozumialem o który pomysł Ci chodzi, dzięki za pomoc

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.