Aktywność użytkowników - jaka struktura tabel?

0

Interesuje mnie cos takiego:

e96ab350e7.png

Jak najlepiej to zaprojektowac pod katem rozwiazan technologicznych oraz struktury tabel? Mamy tutaj do czynienia z aktywnoscia uzytkownikow. Aktywnosc roznego typu, czyli: User X zmienil temat watku na Y, User X dodal komentarz do postu w watku Y itp itd.

Zalozenia:

  • Wiele modulow (niekoniecznie powiazanych z forum) moze dodawac nowa aktywnosc (np. User X dodal artykul Y)
  • Wyswietlanie "migawek" dotyczacych powiazanych akcji (tzn. np. tresc komentarza czy fragment posta)
  • Pamietajmy, ze komentarz czy post moze zostac usuniety (wtedy aktywnosc rowniez nie powinna byc pokazywana)
  • Duza wydajnosc (nowa akcja od kilkunastu sekund do kilku minut, 1 mln rekordow w tabeli)

Mam swoje pomysly, ale chetnie wyslucham propozycji/pomyslow jak mozna ugryzc ten temat :)

0

Proponuję takie kolumny:
-id
-idUzytkownika
-idTypuAkcji
-dataAkcji
-idZrodla //np. jezeli idTypuAkcji to "komentarz", to idZrodla to id z tabeli z komentarzami
-tresc //skrót treści, trzeba pamiętać o updatach

Przy usunięciu komentarza trzeba usunąć akcję po idTypuAkcji i idZrodla.

Ewentualnie - jeżeli interesują Cię jedynie najnowsze akcje, to można niczego nie zapisywać w bazie, a ostatnie akcje trzymać w pamięci.
(zakładam, że masz tylko jeden serwer i nie boli Cię utrata ostatnich akcji przy restarcie serwera).

0

Dzięki za sugestię. Myślę jednak, że użyje jednak do tego jakiejś bazy NoSQL.

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