![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Dostałem zlecenie napisania forum... I wszystko już ładnie działa i doszedłem do momentu w którym muszę sprawdzać czy dany post jest już przeczytany czy nie... Jak takie coś wykonać optymalnie, aby nie generowało ogromnej ilości zapytań i żeby nie zasyfiało bardzo bazy danych? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
W phpBB jest oddzielna tabela w bazie read_history, gdzie dopisywane są informacje kto przeczytał danego posta:
-------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
nie musisz tego robić "w locie".. skorzystaj z cron'a.
-------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 99 Pomógł: 5 Dołączył: 20.06.2005 Skąd: Bielsk Podlaski Ostrzeżenie: (0%) ![]() ![]() |
Myslę, że najrozsądniej będzie zapisywać datę ostatniej wizyty usera na stronie, a potem oznaczyć jako nieczytane wszystkie te artykuły, które były napisane po tej dacie. Nie wymyśliłem jeszcze jak rozwiązać problem, kiedy nowy artykuł będzie napisany w momencie , gdy user przegląda stronę.
![]() Zrobiłem to tak: Dodałem w bazie tabelę z użytkownikami online. Kiedy user wchodzi na stronę, skrypt sprawdza wpisy w tabeli z userami online i wywala wszystkie starsze niż 300 sekund, przy okazji zaznacza w ich profilach czas ostatniej wizyty jako moment wyrzucenia z listy online. Jako nowe artykuły na wstępie zaznaczane są te, które zostały dodane ( lub skomentowane ) po czasie ostatniej wizyty usera. Tabelę userów poszerzyłem o kolumnę 'czytane_artykuly'. Kiedy user wchodzi do artyukułu i jest on nieczytany, informacja o tym zapisywana jest do tabeli:
Data wejścia jest dodana z uwagi na komentarze. Jeśli ktoś skomentował artykuł po czasie zapisanym w tabeli znowu jest nieprzeczytany. Tabelke od razu zapisuję do bazy w formie: , a odczytuję:
Kiedy user jest wymazywany z listy online, czyszczę pole 'czytane_artykuly' w bazie. Przy okazji masz bajerek w postaci listy userów online. ![]() Pozdrawiam . ![]() To jest dokładna kopia mojego posta z tego tematu: Temat: php Nieczytane posty artykuly Ten post edytował Louner 19.07.2007, 21:01:19 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:14 |