Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeczytane/nieprzeczytane - z czym to sie je?
Forum PHP.pl > Forum > Przedszkole
SNC
Witam.
Na jakiej zasadzie (np. w phpBB, lub IPB) dziala oznaczanie postow jako przeczytane lub nieprzeczytane?
Nie wyobrazam sobie zapisywania takich danych w bazie. Tak szczerze mowiac to w ogole sobie nie wyobrazam jak takie cos zmontowac.

Bylbym wdzieczny za jakiekolwiek wskazowki.

Pozdr.
Kuziu
Mozesz zapamietywac ostatnią wizytę danego użytkownika i wszystkie nowsze posty pokazywac jako nieprzeczytane. Dodatkowo stworzyc tabele w ktorej trzymalbys ostatnie przeczytane zeby uzytkownik na biezaco widzial co przeczytal a po jego wyjsciu ze strony kasowalbys to info by nie zawalalo bazy.
SNC
Cytat(Kuziu @ 2006-03-01 15:39:00)
Mozesz zapamietywac ostatnią wizytę danego użytkownika i wszystkie nowsze posty pokazywac jako nieprzeczytane. Dodatkowo stworzyc tabele w ktorej trzymalbys ostatnie przeczytane zeby uzytkownik na biezaco widzial co przeczytal a po jego wyjsciu ze strony kasowalbys to info by nie zawalalo bazy.

OK, a jak bede mial ~5.000 userow? Dla kazdego tworzyc pole z nieprzeczytanym postem? To sie troche mija z celem...
Ma ktos moze jakies inne bardziej optymalne rozwiazania?
dtb
~SNC: gdzieś te inforamcje trzeba trzymać. Można wykorzystać cookies/sesje, ale nie polecam tego rozwiązania. Rozwiązanie Kuziu'ia jest dobre i lepsze mi do głowy nie przychodzi.

jeżeli nie wiesz jak to zrobić, to uprzedzę twoje pytanie:

Dodatkowe kolumny w tabeli z userami:
czas_od_ktorego_wszystkie_nastepnie_posty_sa_nieprzeczytane (czas od 1/01/1970)
id_postow_stanowiacych_wyjatki (zserializowana tablica)

Jak user przeczyta jakiś post, to id będzie dodawane do tablicy z wyjątkami, a natępnie robimy pętle while:
GDY id najstarszego postu mieszczacego sie w przedziale nieprzeczytanych == najmniejsze id z listy wyjatków TO usun id z listy wyjatków, a jako czas_od_ktorego... ustaw czas dodania postu, który jest nastepny w liście wyjatków.
Kuziu
Cytat(SNC @ 2006-03-01 18:20:50)
Cytat(Kuziu @ 2006-03-01 15:39:00)
Mozesz zapamietywac ostatnią wizytę danego użytkownika i wszystkie nowsze posty pokazywac jako nieprzeczytane. Dodatkowo stworzyc tabele w ktorej trzymalbys ostatnie przeczytane zeby uzytkownik na biezaco widzial co przeczytal a po jego wyjsciu ze strony kasowalbys to info by nie zawalalo bazy.

OK, a jak bede mial ~5.000 userow? Dla kazdego tworzyc pole z nieprzeczytanym postem? To sie troche mija z celem...
Ma ktos moze jakies inne bardziej optymalne rozwiazania?

Ale nie wiem czy rozumiesz co napisałem. Ta tabela jest tylko i wyłącznie na czas w którym użytkownik jest na stronie więc jeśli przeczyta sobie 50 topicow i je zapamiętasz to nie masz zbyt duzej tabeli a jak wyjdzie ze strony to jego dane poprostu skasujesz.

Nie masz pamietac wszystkich topicow dla wszystkich uzytkownikow.

Jednoczenie na stronie nie bedą wszyscy naraz a nawet jak by byli to nic nie szkodzi.
Nowy uzytkownik wchodząc kasuje z tabeli wpisy uzytkownikow ktorzy nie są już online i po sprawie.

Przeczytaj moj post jeszcze raz.
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.