Jeśli dobrze rozumiem, powinieneś przeczytać o podstawowych pojęciach relacyjnych baz danych (tj. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Twoje stoły powinny wyglądać tak:
CREATE TABLE post(
post_id INT,
user_id INT
);
CREATE TABLE user (
user_id INT
);
Jest to w zasadzie relacja jeden-do-wielu między użytkownikiem a postem, co oznacza, że jeden użytkownik może mieć wiele postów. Jeśli chcesz wszystkie posty użytkownika (w tym przypadku użytkownika o id 1), możesz je otrzymać w ten sposób:
SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;
Jak widzę w twoim pytaniu, możesz chcieć zmapować wynik do modelu zorientowanego obiektowo. Zależy to w dużej mierze od używanej technologii/języka. Większość technologii oferuje biblioteki umożliwiające łączenie się z systemami baz danych, takimi jak PostgreSQL, otwieranie i zamykanie połączeń, uruchamianie zapytań i odzyskiwanie wyników. W takim przypadku musisz sam zmapować wyniki. Ale istnieją również zaawansowane mapery, takie jak hibernacja, które próbują wykonać tę pracę za Ciebie. Jednak aby z nich korzystać, należy dobrze znać technologie „pod maską”.