Oto ogólny układ dla Ciebie, zrób trzy tabele, o których wspomniałeś, poniżej opisałem jako przykład
[TABELI]
- użytkownicy
- obserwatorzy
- posty
W tabeli użytkowników powinieneś mieć przynajmniej kolumny takie jak identyfikator użytkownika (automatycznie zwiększana wartość / klucz podstawowy).
Tabela obserwujących powinna mieć coś w rodzaju identyfikatora użytkownika, który będzie pasował do identyfikatora użytkownika w tabeli użytkowników, kolumna obserwatora, która również zawierałaby identyfikator # dla obserwatora z tabeli użytkowników.
Następnie dla swojej tabeli postów również chciałbyś mieć identyfikator użytkownika, aby każdy post miał identyfikator z tabeli użytkowników.
Następnie musisz zrobić coś takiego:
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC
Teraz to naprawdę zależy od tego, w jaki sposób zdobędziesz identyfikator użytkownika, aby to rozgryźć. Jeśli przekazujesz identyfikator użytkownika za pomocą sesji po tym, jak zalogują się oni podobnie do czegoś takiego jak Facebook, możesz zmienić identyfikator użytkownika =### na coś w stylu identyfikator użytkownika =".$_SESSION['userid']". Ale znowu, to naprawdę zależy od tego, jak podasz identyfikator użytkownika, ale powyższe powinno przynajmniej trochę Cię zacząć.
Upewnij się, że umieszczasz indeksy na identyfikatorze użytkownika i kolumnach followid, aby gdy tabela powiększyła się, szybko wykonała połączenia.