sql >> Base de Datos >  >> RDS >> PostgreSQL

Hacer referencia a una fila de otra tabla (PostgreSQL)

Si te entiendo correctamente, deberías leer sobre los conceptos básicos de las bases de datos relacionales (es decir, http://www3.ntu.edu.sg/home/ehchua/programming/sql/diseño_de_base_de_datos_relacional.html ). Tus tablas deberían verse así:

CREATE TABLE post(
    post_id INT,
    user_id INT
);

CREATE TABLE user (
    user_id INT
);

Esta es básicamente una relación de uno a muchos entre el usuario y la publicación, lo que significa que un usuario puede tener muchas publicaciones. Si desea todas las publicaciones de un usuario (en este caso, el usuario con ID 1), puede obtenerlas así:

SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;

Como puedo ver en su pregunta, es posible que desee asignar el resultado a un modelo orientado a objetos. Esto depende mucho de la tecnología/lenguaje que esté utilizando. La mayoría de las tecnologías ofrecen bibliotecas para conectarse a sistemas de bases de datos como PostgreSQL, abrir y cerrar conexiones, iniciar consultas y recuperar los resultados. En este caso, debe mapear los resultados usted mismo. Pero también hay mapeadores avanzados como hibernate que intentan hacer este trabajo por ti. Pero para usarlos, debe tener un buen conocimiento de las tecnologías "bajo el capó".