Diseñador de ERD

Diseñe un esquema relacional sin servidor de base de datos: añada tablas, dé a las columnas tipos, claves y valores predeterminados, y después conéctelas con relaciones. El diagrama entidad-relación se redibuja mientras escribe, y el mismo modelo se exporta como DDL CREATE TABLE para MySQL, PostgreSQL, SQL Server, SQLite u Oracle, como código fuente Mermaid erDiagram, o como JSON de esquema portable que puede volver a importar aquí o abrir en el Generador de migraciones. Todo se ejecuta localmente.
¿Qué es un ERD? ERD son las siglas de diagrama entidad-relación, y es el dibujo de diseño de una base de datos, no el registro de una ya terminada. Una comparación útil es el plano de un edificio: la base de datos en ejecución es el edificio, el ERD es el plano, y nadie vierte el hormigón antes de medir. Esta página es la mesa de dibujo de ese plano: aquí da forma al modelo, y el DDL, el código Mermaid y el JSON del esquema se imprimen todos desde ese mismo modelo, así que el dibujo no puede desviarse del SQL que produjo.
El mismo diagrama en tres niveles. Un ERD conceptual solo nombra las cosas que importan y cómo se relacionan, con palabras que cualquier persona no técnica puede revisar. Un ERD lógico añade las claves que identifican cada cosa y resuelve los enlaces muchos a muchos, sin depender del dialecto de ningún motor. Un ERD físico completa lo que exige un producto concreto: anchos de tipo, valores predeterminados, nulabilidad, restricciones de unicidad, reglas de borrado; es el nivel que exporta aquí cuando elige MySQL, PostgreSQL, SQL Server, SQLite u Oracle.
De dónde salen las cajas. Lea una descripción del sistema y subraye los sustantivos: cliente, factura, producto, envío. Esas son las tablas. Los hechos y las cualidades asociados a un sustantivo —una fecha de factura, un precio unitario, una dirección de correo— son sus columnas. Un verbo que une dos sustantivos, como en «un pedido lo realiza un cliente», es una relación, y se guarda copiando la clave identificativa de la fila padre en la fila hija como clave externa.
Cuándo un enlace es muchos a muchos. Una receta usa muchos ingredientes y un ingrediente aparece en muchas recetas, así que ninguna de las dos tablas puede guardar la clave de la otra sin repetirse. La respuesta es una tercera entidad cuyo único trabajo es emparejarlas: la tabla intermedia (o asociativa), con una clave externa por cada lado, a menudo con esa pareja de claves como su propia clave primaria. Un modelo que es sobre todo tablas de emparejamiento así es completamente normal: una línea muchos a muchos en una pizarra siempre tiene que convertirse en una caja en el esquema real.
Por qué merece la pena antes de que exista el DDL. Una línea mal puesta en un dibujo cuesta un minuto borrarla; el mismo error descubierto tras la publicación cuesta una migración sobre datos reales. El diagrama es además el único artefacto que pueden revisar las personas no técnicas, y los fallos de relación —una cardinalidad al revés, una clave única que falta, filas hijas que pueden quedarse sin padre— aparecen aquí como líneas evidentemente malas, mientras que en un DDL de 400 líneas se esconden entre las restricciones.
¿Hacia delante o hacia atrás? Este diseñador va hacia delante: primero el modelo, después el DDL. La página hermana SQL a ERD va en sentido contrario: pegue sentencias CREATE TABLE existentes y reconstruye el diagrama, que es la ruta más rápida una vez que la base de datos ya existe.
1 — Tablas
Editar Nombre de la tabla Columnas Relaciones Actions
2 — Columnas
Columna Tipo PK AI NN UQ Predeterminado Actions
PK = clave primaria, AI = autoincremento / identidad, NN = no nulo, UQ = único
3 — Relaciones (claves externas)
Tabla hija Columna hija Actions Tabla padre Columna padre Al eliminar Actions
Una clave externa se convierte en una línea CONSTRAINT ... FOREIGN KEY en el DDL.
4 — Exportar
Código fuente Mermaid erDiagram
El modelo JSON es el formato de intercambio de la familia de herramientas de bases de datos: péguelo en el Generador de migraciones como esquema antes/después, o vuelva a importarlo aquí para seguir editando más tarde.