Se ho capito bene, dovresti leggere i concetti di base dei database relazionali (es. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Le tue tabelle dovrebbero apparire così:
CREATE TABLE post(
post_id INT,
user_id INT
);
CREATE TABLE user (
user_id INT
);
Questa è fondamentalmente una relazione uno-a-molti tra utente e post, il che significa che un utente può avere molti post. Se vuoi tutti i post di un utente (in questo caso l'utente con id 1), puoi ottenerli in questo modo:
SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;
Come posso vedere nella tua domanda, potresti voler mappare il risultato su un modello orientato agli oggetti. Questo dipende molto dalla tecnologia/lingua che stai usando. La maggior parte delle tecnologie offre librerie per connettersi a sistemi di database come PostgreSQL, aprire e chiudere connessioni per avviare query e recuperare i risultati. In questo caso devi mappare tu stesso i risultati. Ma ci sono anche mappatori avanzati come Hibernate che cercano di fare questo lavoro per te. Ma per usarli, dovresti avere una buona conoscenza delle tecnologie "sotto il cofano".