Cuando trabajas con PostgreSQL no solo creas tablas: también defines relaciones, restricciones y, si el caso lo pide, funciones para encapsular lógica que se repetirá en consultas.
1) Modelo relacional y claves
En un esquema típico tendrás:
- Clave primaria (PK): identifica de forma única una fila.
- Clave foránea (FK): conecta tablas y garantiza integridad referencial.
- Restricciones:
NOT NULL,UNIQUE,CHECK…
2) Crear tablas (ejemplo)
Ejemplo simple (adaptable a tu práctica):
CREATE TABLE deportes (
id_deporte SERIAL PRIMARY KEY,
nombre VARCHAR(60) NOT NULL UNIQUE
);
CREATE TABLE deportistas (
id_deportista SERIAL PRIMARY KEY,
nombre VARCHAR(60) NOT NULL,
id_deporte INT REFERENCES deportes(id_deporte)
);
3) Consultas con JOIN
SELECT d.nombre AS deporte, dp.nombre AS deportista
FROM deportes d
LEFT JOIN deportistas dp ON dp.id_deporte = d.id_deporte
ORDER BY d.nombre;
4) Funciones en PostgreSQL
Una función te permite reutilizar consultas o lógica. Ejemplo conceptual:
CREATE OR REPLACE FUNCTION get_deportistas(p_id_deporte INT)
RETURNS TABLE(id_deportista INT, nombre VARCHAR)
LANGUAGE sql
AS $$
SELECT id_deportista, nombre
FROM deportistas
WHERE id_deporte = p_id_deporte
ORDER BY nombre;
$$;
5) Recomendaciones
- Empieza por el modelo (qué tablas y relaciones necesitas).
- Usa índices cuando haya filtros frecuentes.
- Si creas funciones, documenta qué entrada/salida tienen y cómo se usan.
