From alfred-dev
Designs normalized (3NF) relational database schemas with indexes, constraints, naming conventions, and documentation from functional requirements. Guides entity extraction, relationships, and ERD generation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/alfred-dev:schema-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Este skill guía el proceso de diseñar un esquema de base de datos relacional a partir de requisitos funcionales. El diseño no es solo crear tablas que almacenen datos, sino modelar el dominio del negocio de forma que garantice integridad, rendimiento y evolución sostenible.
Este skill guía el proceso de diseñar un esquema de base de datos relacional a partir de requisitos funcionales. El diseño no es solo crear tablas que almacenen datos, sino modelar el dominio del negocio de forma que garantice integridad, rendimiento y evolución sostenible.
El esquema resultante debe estar normalizado hasta la tercera forma normal (3NF) como mínimo, con índices justificados, constraints que protejan la integridad y documentación que permita a cualquier miembro del equipo entender cada tabla y columna sin necesidad de leer el código de la aplicación.
Analizar los requisitos y extraer entidades. A partir de los requisitos funcionales, identificar las entidades del dominio. Cada sustantivo relevante es un candidato a entidad: usuario, pedido, producto, factura. Documentar qué atributos tiene cada entidad y cuáles son obligatorios.
Definir las relaciones entre entidades. Para cada par de entidades relacionadas, determinar la cardinalidad:
Documentar la dirección de la relación y si es obligatoria u opcional en cada extremo.
Normalizar hasta 3NF. Aplicar las formas normales secuencialmente:
Si hay motivos de rendimiento para desnormalizar, documentar la justificación explícitamente.
Aplicar convenciones de naming. Mantener coherencia en todo el esquema:
users, order_items, payment_methods.email, created_at, total_amount.id o <tabla_singular>_id.<tabla_referenciada_singular>_id.idx_<tabla>_<columnas>.created_at y updated_at en todas las tablas.Definir constraints e integridad referencial. Para cada tabla:
Diseñar los índices. Los índices se crean para consultas concretas, no de forma preventiva:
Adaptar al ORM del proyecto. Traducir el diseño a la sintaxis del ORM utilizado (Prisma, Drizzle, SQLAlchemy, Django ORM, TypeORM). Asegurarse de que las relaciones, índices y constraints se expresan correctamente en el modelo del ORM, ya que no todos soportan las mismas funcionalidades.
Registrar las decisiones de modelado. Registrar las decisiones de modelado en la memoria del proyecto con memory_log_decision. Esto incluye el motivo de cada desnormalización, la elección de tipos de datos especiales y las concesiones de rendimiento vs. integridad.
Documentar el esquema. Cada tabla debe tener un comentario que explique su propósito. Las columnas no obvias deben documentar qué representan, sus valores posibles y sus restricciones. Si el motor lo permite, usar comentarios nativos (COMMENT ON); si no, documentar en un fichero adjunto o en el propio código del ORM.
deleted_at) sin evaluar las consecuencias en queries, índices y unicidad.TIMESTAMP para fechas, DECIMAL para dinero, UUID para identificadores distribuidos.npx claudepluginhub 686f6c61/alfred-dev --plugin alfred-devDesigns and documents database schemas with entity relationships, table definitions, constraints, indexes, and access patterns. Useful when modeling entities or planning data models.
Designs normalized relational schemas before writing DDL or ORM code. Covers entity listing, primary keys, relationships, and normalization to 3NF.
Designs normalized relational database schemas for PostgreSQL and MySQL from requirements, generating DDL, constraints, indexes, relationships, and migrations.