[ shoba @ 13.10.2007. 22:50 ] @
Kako realizujete FIFO buffer u PHPu?

Da bih bio jasniji dacu jedan primer FIFO buffera. Na primer, treba napraviti opciju da se zapisuje poslednjih 10 posetilaca necijeg licnog profila ili stranice. Dakle, za svaki profil bih u bazi zapisivao poslednjih 10 usernameova koji su ga posetili.

Da li bi resenje bilo sledece:

- pri svakoj novoj poseti profila proveravam koliko je poseta imao taj profil
- ako je imao manje od 10, zapisujem novi red
- ako je imao vise od 10 brisem najstarijeg iz tabele (znaci da sam uz username pamtio i datum) i upisujem novog

Ima li neko elegantnije/logicnije/brze resenje?



[ dakipro @ 13.10.2007. 23:14 ] @
Meni ovo deluje ok, osim sto mozda ne postoje ova dva slucaja i ova provera koju si ti naveo, nego se uvek brisu rekordi koji su stariji od desetog rekorda. Nema potrebe da brojis i pratis posto uvek imas unos u bazu, verujem da moze upitom da sa where ili mozda kombinacijom sa limit ovo uradi sam mysql, samo naravno, budi obazriv prilikom pisanja ovakvog upita

Takodje treba da pazis da ne ispadne da ga je jedan user video 6 puta od zadnjih 10, ali to preveravas pre fifo-a.
[ noviKorisnik @ 14.10.2007. 00:50 ] @
Ako sam dobro razumeo, podatke čuvaš u nekoj tabeli u bazi. Nemaš neku specijalnu potrebu da brišeš, dovoljno je da selektuješ 10 najsvežijih zapisa i posao je završen.