Nowe posty na forum


(Kontakt) #1

Witam,

piszę własne forum i stanąłem na problemie: "Nowe posty na forum". Chodzi o tą funkcję, że czytamy tematy i np. po 10 minutach odświeżamy stronę i widzimy nowe tematy/posty.

Wszystko fajnie, dopóki próbowałem rozgryźć na kartce jak to zrobić. Data logowania? Padnie na braku wylogowania... Cookies? Padnie na wyczyszczeniu, bądź wejściu z innego kompa. I został mi pomysł bazy danych.

I zacząłem sobie liczyć:

W bazie były by mniej więcej 3 pola: temat, user, data (+ id ale to pomijam).

Temat to przy przykładowych 500 tematach to liczby 3 cyfrowe, czyli 3 bajty.

User przy przykładowych 3 tysiącach to liczby max 4 cyfrowe, czyli 4 bajty.

Data przy formacie: 2010-10-10 10:10 to 16 znaków, czyli 16 bajtów.

Jeden wpis: 16+4+3 = 23bajty.

Będę przy przykładowych 500 tematach i 3 tys użytkowników potrzebował 150 000 rekordów.

150 000 * 23 bajty ~ 3,3 Mb (jak dobrze policzyłem).

I teraz będzie to trzeba jeszcze przeszukać nie raz.

Moje pytanie brzmi: Jest na to jakiś dobry sposób? Czy moje liczenie jest dobre?

Z góry dzięki :wink:


(Sitemaster) #2

Tylko pytanie, po co Ci do tego data?

-wystarczy id tematu i id usera.


(Kontakt) #3

i jeżeli ktoś doda nowy post w temacie, to leci zapytanie do sql, usuwajace wszystkie przypisania tematu do usera? :slight_smile:


(Sitemaster) #4

Albo odwrotnie, przypisujące temat do usera. Zależy od przyjętego modelu, czy istniejący rekord = odwiedzony czy nieodwiedzony.


(Magnevox) #5

Albo data w formacie time() i przy każdym odświeżeniu strony leci zapytanie dodające te sekundy, czyli czas wizyty, a skrypt sprawdza w if'ie czy czas postu jest większy niż odwiedzony itd