PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Fazendo referência a uma linha de outra tabela (PostgreSQL)


Se entendi corretamente, você deve ler sobre os conceitos básicos de bancos de dados relacionais (ou seja, http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Suas tabelas devem ficar assim:
CREATE TABLE post(
    post_id INT,
    user_id INT
);

CREATE TABLE user (
    user_id INT
);

Esta é basicamente uma relação um-para-muitos entre usuário e postagem, o que significa que um usuário pode ter muitas postagens. Se você quiser todas as postagens de um usuário (neste caso, o usuário com id 1), você pode obtê-las assim:
SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;

Como posso ver na sua pergunta, você pode querer mapear o resultado para um modelo orientado a objetos. Isso depende muito da tecnologia/linguagem que você está usando. A maioria das tecnologias oferece bibliotecas para se conectar a sistemas de banco de dados como PostgreSQL, abrir e fechar conexões iniciar consultas e obter os resultados. Nesse caso, você mesmo deve mapear os resultados. Mas também existem mapeadores avançados como o hibernate tentando fazer esse trabalho para você. Mas para usá-los, você deve ter um bom conhecimento das tecnologias "sob o capô".