![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 1.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Jak już pisałem na forum (może ktoś kojarzy) tworzę nieduży systemik do katalogowania i oceniania moich planszowych gier. Chciałbym, aby była możliwość oceniania ich przez odwiedzających (możliwe, że kiedyś to się rozrośnie (IMG:style_emoticons/default/smile.gif) ). W bazie mam tabelę "ratings", w której trzymam ocenę (pole ratings_rate) i identyfikator gry (ratings_gameid). Wpadłem na pomysł, by pobrać te dane do pliku i dodać im numery, tak: Następnie wrzucam wynik do pliku, z niego robię tablicę, przy wywoływaniu listy gier includuje go, i biorę "nr" odpowiadający identyfikatorowi. Teraz pojawia się problem. Jeżeli założymy, że baza gier się rozrośnie (na początek będzie tam zbiór mój i kilku kolegów ze studiów) i wyniesie (luźno liczymy) 500 pozycji, to jak będzie z wydajnością? Chcemy zrobić więcej rankingów, m.in. wg wydawcy i roku wydania, to wszystko to są zapytania, pobierające przecież pięćset rekordów. Pomyślałem, żeby pobieranie rankingu zrobić w CRONie, raz na dobę. Ale wówczas problemem będzie to, że sortuję wyniki przez średnią arytmetyczną ocen. Mógłbym zamiast umieszczać wyniki w pliku, dawać je do bazy, ale problem główny leży w tym, czy zwykłe konto na serwerze "wydoli" z częstą aktualizacją takich rankingów, powiedzmy... no, szczerze, to przy każdej oddanej ocenie. A może macie jakiś inny sposób na ranking sortowany wg ocen? Korzystam z ADOdb, gdyby to miało w czymś pomóc. Ten post edytował spit 19.07.2010, 21:44:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Na początek powiem, że nie wiem czy do końca rozumiem Twój problem, bo nie opisałeś go jednoznacznie, albo ja dzisiaj już nie od końca kontaktuje.
Ogólnie to źle podchodzisz do tematu (pomijając już kwestie że wykonujesz zupełnie nieoptymalne zapytania do bazy). Wg. mnie w kwestii rankingów różnej maści sprawdzają się wyzwalacze - ranking zmienia się tylko wtedy gdy ktoś dodaje ocenę więc najlepiej ustawić wyzwalacz, który obliczy średnia ocenę dla danej gry po każdym dodaniu oceny i zapisze ją w bazie. Cachowanie wyników w plikach imho w takiej sytuacji jest zupełnie bez sensu i nic nie daje. Co do Twojego drugiego pytania to raczej 500 w miarę prostych selectów nie będzie problemem dla dobrej jakości konta o ile będzie to oczywiście kwestia jednorazowa wywoływana z crona w nocy - niemniej przez palce by mi nie przeszedł kod generujący taką liczbę zapytań :-) Pomyśl raczej nad jakimś lepszym algorytmem wykonania tego zadania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 23:09 |