Witam,
Przygotowuję aplikację internetową, która ma za zadanie również pełnić rolę serwisu społecznościowego. Mam problem z zaprojektowaniem bazy danych pod:
- obserwowanie użytkowników;
- lubienie postów;
- przepinanie postów na swoją tablicę
Wstępnie określiłem sobie taki zarys tabel
USERS
IdUser | LoginUser | Pass USER | ...
POSTS
IdPost | IdUser | TitlePost | ...
No i tutaj prosta zasad. Ładuję posty na tablicę usera gdzie IdUser będzie zgadzało się w obu tabelach. Schody zaczynają się przy obserwacji usera.
FOLLOWERS
IdUser | Id Follower
Wyszukuję interesujący mnie IdUser, zliczam Countem rekordy z tabeli, aby wskazać liczbę obserwujących. W IdFollower będę dodawał id usera, który go zaczął obserwować. Po tym wczytam z bazy USERS nazwę użytkownika, który go obserwuje. Tak to wstępnie rozplanowałem, ale... nie wydaje mi się żeby to było wydajne rozwiązanie. Może do obserwowania użytkowników wystarczy, ale w przypadku polubień poszczególnych postów rekordów może być dziesiątki lub setki tysięcy. W przypadku ładowania postów na "ścianę" aplikacji zapytanie będzie wykonywane kilkadziesiąt razy.
Czy ma ktoś z Was pomysł lub praktyczne rozwiązanie tego problemu?