Diseñar un esquema de base de datos normalizado
Convierte requisitos de negocio en un esquema relacional normalizado con entidades, claves, restricciones, índices, DDL y consultas de validación. Pensado para ChatGPT, Claude y Gemini. Incluye 6 variables personalizables y se copia gratis en un clic.
Avanzado · Código · Pendiente de revisión editorial
Prompt
Actúa como arquitecto de datos con experiencia en modelado relacional y en {{motor}}.
Contexto de la aplicación: {{aplicacion}}.
Requisitos funcionales (lo que el sistema debe registrar y permitir): {{requisitos}}.
Volumen estimado: {{volumen}}.
Consultas más frecuentes: {{consultas}}.
Entrega, en este orden:
1. Lista de entidades y atributos derivados de los requisitos, señalando cualquier ambigüedad que necesites que te aclare.
2. Diagrama entidad-relación en sintaxis Mermaid (`erDiagram`) con cardinalidades.
3. Justificación de la normalización hasta 3FN (y dónde convendría desnormalizar a propósito, con el motivo).
4. DDL completo para {{motor}}: tipos de datos adecuados, claves primarias (y criterio: enteros, UUID o ULID), claves foráneas con `ON DELETE` razonado, `NOT NULL`, `UNIQUE`, `CHECK` y valores por defecto.
5. Índices recomendados para las consultas frecuentes, explicando cada uno.
6. Estrategia para borrado lógico, auditoría (`created_at`, `updated_at`) y datos personales sensibles.
7. Tres consultas SQL de ejemplo que demuestren que el esquema cubre los casos de uso principales.
8. Riesgos de evolución del esquema y cómo gestionarlos con migraciones.
Restricciones:
- No añadas entidades que no se deduzcan de los requisitos sin avisarme.
- Nombres de tablas y columnas en {{idioma_nombres}}, en snake_case.
- Si falta información crítica, pregúntame antes de escribir el DDL.Cómo usarlo
- Escribe los requisitos como frases sencillas: «un cliente puede tener varias direcciones».
- Añade las consultas que más usarás; definen los índices.
- Pega el diagrama Mermaid en un visor compatible para revisarlo.
- Ejecuta el DDL en una base de datos de pruebas antes de crear las migraciones definitivas.
Ejemplo de uso
Aplicación: gestión de una academia · Requisitos: alumnos, cursos, grupos, matrículas y pagos mensuales · Motor: PostgreSQL 16.
Resultado de ejemplo
4. DDL (extracto, PostgreSQL 16)
CREATE TABLE students (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
full_name text NOT NULL,
email text NOT NULL UNIQUE,
created_at timestamptz NOT NULL DEFAULT now(),
deleted_at timestamptz -- borrado lógico
);
CREATE TABLE enrollments (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
student_id bigint NOT NULL REFERENCES students (id) ON DELETE RESTRICT,
class_group_id bigint NOT NULL REFERENCES class_groups (id) ON DELETE RESTRICT,
enrolled_on date NOT NULL DEFAULT current_date,
UNIQUE (student_id, class_group_id)
);
CREATE TABLE monthly_payments (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
enrollment_id bigint NOT NULL REFERENCES enrollments (id) ON DELETE RESTRICT,
period date NOT NULL CHECK (extract(day FROM period) = 1),
amount_cents integer NOT NULL CHECK (amount_cents >= 0),
paid_at timestamptz,
UNIQUE (enrollment_id, period)
);
-- Índice parcial para "alumnos con pagos pendientes"
CREATE INDEX idx_payments_unpaid ON monthly_payments (period) WHERE paid_at IS NULL;
ON DELETE RESTRICT evita perder el historial de pagos si alguien borra un alumno; por eso se usa borrado lógico. Los importes van en céntimos para evitar errores de redondeo.
Ambigüedades
- ¿Un pago cubre una matrícula o todas las del alumno en ese mes? [COMPLETAR]…
Datos clave
- Categoría
- Programación y desarrollo · SQL
- Tipo de resultado
- Código
- Nivel
- Avanzado
- Pensado para
- ChatGPT, Claude y Gemini
- Verificado en
- Pendiente de verificación editorial
- Variables
- Motor de base de datos, Aplicación, Requisitos, Volumen estimado, Consultas frecuentes y Idioma de los nombres
- Idioma
- Español
- Precio
- Gratis, sin registro
- Actualizado
- 07/11/2026
Preguntas frecuentes
¿Siempre hay que normalizar hasta 3FN?
Es un buen punto de partida para evitar duplicados e incoherencias. En informes o tablas con muchísimas lecturas puede compensar desnormalizar, pero debe ser una decisión consciente y documentada.
¿UUID o identificadores enteros?
Los enteros son compactos y rápidos; los UUID o ULID evitan exponer el número de registros y facilitan generar identificadores fuera de la base de datos. El prompt te pide justificar la elección.
¿Para qué sirve este prompt?
Convierte requisitos de negocio en un esquema relacional normalizado con entidades, claves, restricciones, índices, DDL y consultas de validación.
¿Con qué herramientas de IA funciona?
Está pensado para ChatGPT, Claude y Gemini. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.
¿Cómo personalizo el prompt?
Pulsa «Personalizar» y rellena las variables (Motor de base de datos, Aplicación, Requisitos, Volumen estimado, Consultas frecuentes y Idioma de los nombres). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.
¿Necesito experiencia para usarlo?
Es de nivel avanzado: está pensado para personas con experiencia en el tema que sepan evaluar y ajustar el resultado.
¿Este prompt es gratis?
Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.
¿Puedo fiarme del resultado de la IA?
Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.