Projekt forum - nie odwiedzone wątki

0

Projektuje sobie forum i stanąłem na tym jak najwydajniej i najprościej rozwiązać kwestie oznaczania wątków jako nieprzeczytanych. Oczywiście nie chce kodu tylko podpowiedź bo trochę brak mi pomysłu na ten problem.

0

W skrócie - w bazie danych albo w plikach cookies.
A dokładniej, poniżej wady i zalety poszczególnych rozwiązań:

  1. Baza danych

a) Zalety

  • Możliwość przeglądania/analizowania stanów wątków dla użytkowników w dowolnej chwili po stronie serwera
  • Takie same stany wątków dla użytkownika obojętnie z jakiej maszyny/przeglądarki korzysta w danej chwili.
  • Informacja o stanach wątków nie 'ulotni się' sama z siebie - posiadasz nad tym kontrolę.

b) Wady

  • Większe obciążenie bazy danych
  • Większy rozmiar bazy danych
  1. Cookies

a) Zalety

  • Serwer oraz baza danych nie są obciążane informacjami o stanach wątków, ponieważ dane te nie są rejestrowane po stronie serwera

b) Wady

  • Utrata korzyści wynikających z użycia opcji z przechowywaniem w bazie danych.
0

Nad ciasteczkami to nawet nie myślałem bo ten pomysł z góry odrzuciłem, to musi być w bazie. W sumie mam 2 pomysły:

  • dodatkowa tabela przechowujące dane odnoście ostatniego postu w danym wątku odwiedzonym przez danego użytkownika, (insert przy pierwszym wejściu w wątek, update przy następnych)
  • dodatkowa jedna kolumna w tabeli users przechowująca w formie tekstu id wątku i id ostatniego postu z każdego wątku, informacje o kolejnych wątkach rozdzielone odpowiednim specjalnym znakiem, formatowane do postaci tabelki przy każdym wczytaniu podstrony forum.

Te forum ma zastąpić inne forum na portalu którym jest dość sporo osób, dziennie pojawia się kilka/kilkanaście postów, tylko, że muszę dodać kilka dodatkowych funkcji do niego a się okazało, że kod jest tak porąbany, że szybciej jest napisać od początku nowe forum + konwerter tabel forum z aktualnego na nowe niż się bawić w ulepszanie tamtego. Jedno z tych moich rozwiązań daje większa wydajność inne mniejszą bazę ale chodzi o to który według was sposób jest lepszy, albo jak inaczej, lepiej to zrobić (o ile się da).

0

Zdecydowanie dodatkowa tabela zawierający stany wątków dla poszczególnych użytkowników.

0

Dzięki

0

Ja bym nawet dał dodatkową bazę danych zwierającą stan odwiedzenia poszczególnych wątków (jakieś szybkie NoSQL jak np. Redis).

1 użytkowników online, w tym zalogowanych: 0, gości: 1