Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Jak przetrzymywać dane w bazie?
Forum PHP.pl > Forum > Przedszkole
Blackall
Witam,

mam do was szybkie pytanie - jak lepiej trzymać dane w bazie, aby mniej obciążyć serwer?

powiedzmy, że mam 1,2,....,n użytkowników. Każdy z nich może wybrać sobie jedno z urządzeń, które są ponumerowane w osobnej tabeli: 1,2,...,k

i teraz pytanie - jak (w kolejnej tabeli) trzymać informacje o każdym użytkowniku i jego urządzeniach - tak:
user devices
1 1,5,9,81
2 2,8,81

czy lepiej to zrobic na zasadzie:
1 1
1 5
1 9
1 81
2 2
2 8
2 81

?

w tej chwili zastosowałem to pierwsze rozwiązanie, ale czym dalej koduje, tym bardziej mnie wkurza bawienie sie z implode, explode, like... drugie rozwiazanie bedzie chyba duzo prostsze - ale czy nie obciązy bardziej bazy przy wiekszej ilosci uzytkownikow i zapytan?
Wicepsik
Lepiej zrób drugie rozwiązanie.
Blackall
rozumiem ze nie obciązy to bardziej bazy?
Fifi209
Cytat(Blackall @ 13.08.2009, 16:03:46 ) *
rozumiem ze nie obciązy to bardziej bazy?


Tak będzie znacznie lepsze.
Blackall
a co moge zrobic w przypadku wiadomosci?
powiedzmy ze mam wiadomosci i dotyczy ona 50 urządzen. Co wtedy? Jedną tabele z wiadomosciami i ich id, a drugą tablee na takiej samej zasadzie jak powyzej? Czyli
id device_id
1 1
1 2
1 3
1 4
.....
1 50

?
seth-kk
jesli dasz sobie glowe uciac ze nie bedziesz szukal uzytkownikow powiazanych z konkretnym uzadzeniem to pierwszy sposob moze byc troche szybszy i wtedy warto odwolywac sie do tych danych przez dodatkowa metode/funkcje ktora bedzie dbala o explodowanie i podobne zabiegi
jesli sie pomylisz to niedozyjesz efektow winksmiley.jpg
w pozostalych przypadkach lepiej jest skozystac z drugiego sposobu i optymalizacje zostawic indeksom i systemom keszujacym
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.