Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatucznie odswierzane pole o ustalonej godzinie, jaka metoda
Forum PHP.pl > Forum > Bazy danych
grzemach
Witam,
zanosze sie z zamiarem napisania gry internetowej i zanim sie do tego zabiore musze rozwiazac kilka problemow czysto przygotowawczych, analitycznych itp, jednym z nich jest wybor bazy danych. Wg. mnie lepszym rozwiazaniem jest zastosowanie postgresql-owej bazy ze wzgledu na trigery i inne uzyteczne rzeczy, z bazy nie bede pobieral duzej ilosci danych wiec to nei bedzie problemem. ale problem jest w innej dziedzinie, mianowicje jednym z elementow gry bedzie podliczanie punktow o pewnej (lub pewnych) godzinach, np codziennie o 24 lub o 24 i 12. i teraz zastanawiams ie jak to zrobic, nasuwa mi sie rozwiazanie nie bardzo eleganckie, czyli w skrypcje php wrzuce linijke do sprawdzania daty i jesli skrypt wykryje ze przeszlismy za 12/24 to uruchomi skrypt odpowiedzialny za podliczenie punktow (oczywiscie kilka zabezpieczen aby skrypt nie wywolal sie dwa razy itp bedzie zrobione). ale tak szczerze mowiac wydaje mi sie ze takie cos powinno byc inaczej zrobione, jak byscie Wy to rozwiazali? czy w trigerze sie cos takiego da wrzucic? wydaje mi sie ze trigger uruchamia sie na konkretne zdarzenie tylko, nie da sie go wywolac o ktorejs godzinie, a moze jakas procedurka? tylko jaka?

I jeszcze jedno pytanie, a moze lepiej dac sobie spokoj z Postgresql-em i zrobic to w Mysql a calosc obudowac poprostu w PHP?

ps. nie prosze o gotowca, tylko algorytm
dr_bonzo
Masz 'cron'a do takich zadan.

Chyba w PG jest tez jakis scheduler (nie wiem, tak mi sie kojarzy, trzeba sprawdzic)

MySQL tez ma triggery i funkcje skladowane.
grzemach
dzieki wlasnie tego mi brakowalo, tego slowa 'scheduler' juz sobie wyszukalem wszystkiego i pgsql i mysql ma schedulera smile.gif
yarns
No właśnie... ja mam podobne pytanie... jak do strony programistycznej w tego typu grach jest rozwiązane naliczanie punktów(incrementacja) z jakimś tam interwałem czasowym... Wiadomo że na otwartej stronie punkty podlicza java script, ale jak to wygląda po stronie serwera - czy dane są aktualizowane w momencie odświeżenia strony czy na bieżąco? Jak rozwiązane jest "budowanie" i jakieś kolejki budowania np.: budowanie czegoś tam potrwa 01:33:11 po czym zmienia się przyrost czegoś tam i potem zaczyna się budować coś innego...

Będę wdzięczny za wszelkie odpowiedzi...a jeszcze bardziej za linki do jakiś przykładów gdzie mógłbym obejrzeć tego typu rozwiązania.

Pozdrawiam
grzemach
moge Ci napisac jak ja mysle (ale jeszcze tego nie implementowalem), narazie mysle o tym jak to zrobic.
wiec, podliczanie punktow zastosuje scheduler, tutaj jest jego opis http://dev.mysql.com/tech-resources/articl...nt-feature.html
a do kolejki budowania to bedzie tak to wygladalo (ktoras z mozliwosci):
1) bedzie stronka np ilosci wydobycia i na niej bedzie przycisk odswiez - po kliknieciu bedzie aktualizowane;
2) zastosuje trigerek, ale tutaj jest maly problem bo triger dziala na dodawanie, modyfikacje itp, a nie zadziala na konczenie odliczania (bo calosc kolejek bedzie w odpowiedniej tabeli), ale mozna zrobic tak ze triger bezie tworzyl schedulera, ktory sie wykona np czasWykonaniaBudowy+2s(lub coskolo tego), tak aby nawet przy jakims lagu uleglo to odswierzeniu;
3) na kazdej stronie bedzie podpiety link do odswierzania kolejki budowania, najmnniej optymalne rozwiazanie gdyz za kazdym razem jedna tabela bedzie musiala byc przeszukana, przez co ok 1s wolniej (moze mniej), ale zawsze o tyle bedzie zwolnione ladowanie strony nie wydaje sie to duzo, lecz co jesli np baza dostanie jakiegos laga? strona bedzie sie latowala duzo duzej o dane ktorych nie potrzebujemy...

mam nadzieje ze chociaz troszke Ci pomoglem smile.gif
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.