Hier is een algemene lay-out voor je, maak drie tabellen zoals je noemde, ik heb het hieronder als voorbeeld geschetst
[TABELLEN]
- gebruikers
- volgers
- berichten
In de gebruikerstabel moet u op zijn minst kolommen hebben zoals userid (auto incremented value / primary key).
De tabel met volgers zou zoiets moeten hebben als userid, wat overeenkomt met de gebruikerstabel userid, een kolom met followid die ook het id # voor de volger uit de gebruikerstabel zou hebben.
Dan zou je voor je berichtentabel ook een gebruikers-ID willen hebben, dus wanneer elk bericht wordt gemaakt, zou het de id van de gebruikerstabel hebben.
Dan zou je iets moeten doen als:
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC
Nu hangt het er echt van af hoe u de gebruikers-ID krijgt om dit uit te zoeken. Als je de gebruikers-ID doorgeeft met een sessie nadat ze zich hebben aangemeld, vergelijkbaar met iets als Facebook, dan zou je userid =### kunnen veranderen in iets als userid =".$_SESSION['userid']." Maar nogmaals, het hangt er echt van af hoe je de gebruikers-ID doorgeeft, maar het bovenstaande zou je in ieder geval een beetje op weg moeten helpen.
Zorg ervoor dat u indexen op de kolommen userid, followid plaatst, zodat wanneer de tabel groter wordt, de joins snel worden uitgevoerd.