Ако ви разбирам правилно, трябва да прочетете за основните концепции на релационните бази данни (т.е. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Вашите таблици трябва да изглеждат така:
CREATE TABLE post(
post_id INT,
user_id INT
);
CREATE TABLE user (
user_id INT
);
Това всъщност е връзка "един към много" между потребител и публикация, което означава, че един потребител може да има много публикации. Ако искате всички публикации на даден потребител (в този случай потребителят с идентификатор 1), можете да ги получите по следния начин:
SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;
Както виждам във вашия въпрос, може да искате да картографирате резултата към обектно-ориентиран модел. Това зависи много от технологията/езика, който използвате. Повечето технологии предлагат библиотеки за свързване със системи за бази данни като PostgreSQL, отваряне и затваряне на връзки, стартиране на заявки и връщане на резултатите. В този случай трябва сами да картографирате резултатите. Но има и напреднали картографи като hibernate, които се опитват да свършат тази работа вместо вас. Но за да ги използвате, трябва да имате добри познания за технологиите "под капака".