Diagramas ERMay 14, 202610 min de lectura

Ejemplos de Diagramas Entidad-Relación: Una Guía Visual para Desarrolladores

Ver ejemplos reales de diagramas ER es la forma más rápida de aprender diseño de bases de datos. Esta guía recorre cinco esquemas prácticos — e-commerce, blog, autenticación SaaS, gestión de proyectos y hospital — y explica cómo leer y construir tus propios ERDs.

Los diagramas Entidad-Relación (ERDs) son el lenguaje universal del diseño de bases de datos. Permiten ver la estructura completa de una base de datos de un vistazo — cada tabla, cada columna, cada relación — antes de escribir una sola línea de SQL. Pero para muchos desarrolladores, la mejor manera de aprender a crear diagramas ER es estudiar ejemplos concretos y del mundo real.

En esta guía recorremos cinco ejemplos prácticos de diagramas ER en diferentes dominios. Para cada uno describimos las tablas, las columnas clave y las relaciones entre ellas. Al final podrás leer cualquier diagrama ER con fluidez y diseñar los tuyos desde cero.

¿Qué es un Diagrama ER?

Un diagrama ER es un mapa visual de una base de datos relacional. Muestra entidades (tablas), atributos (columnas) y relaciones (claves foráneas). Cada caja en el diagrama representa una tabla; cada línea que conecta dos cajas representa una relación entre ellas. Los símbolos en cada extremo de la línea describen la cardinalidad — si la relación es uno a uno, uno a muchos o muchos a muchos.

Tipos de Notación: Chen vs. Crow's Foot

Dos notaciones dominan los diagramas ER modernos. La notación Chen, inventada por Peter Chen en 1976, usa rectángulos para entidades, óvalos para atributos y rombos para relaciones. Es académicamente rigurosa pero verbosa, lo que hace que los esquemas grandes sean difíciles de leer.

La notación Crow's Foot es utilizada por prácticamente todas las herramientas modernas de diseño de bases de datos, incluyendo ER Flow. Las entidades son rectángulos con columnas listadas en su interior. Las relaciones son líneas con pequeños símbolos en cada extremo: una barra vertical simple significa "uno", una pata de cuervo (tres líneas separadas) significa "muchos" y un círculo significa "cero". Esta notación compacta facilita mapear esquemas grandes en un solo canvas.

Ejemplo 1: Plataforma de E-Commerce

Un esquema de e-commerce típicamente gira en torno a cinco tablas principales. La tabla users almacena las cuentas de clientes con columnas como id, email, password_hash, name y created_at. La tabla products contiene el catálogo: id, name, description, price, stock_quantity y category_id. La tabla categories proporciona una jerarquía simple con id, name y un parent_id autorreferenciado y nullable para subcategorías.

La tabla orders vincula clientes con compras: id, user_id (FK a users), status, total_amount y created_at. Finalmente, la tabla de unión order_items captura las líneas de cada pedido: id, order_id (FK a orders), product_id (FK a products), quantity y unit_price. La relación se lee: un usuario tiene muchos pedidos; un pedido tiene muchos ítems; cada ítem referencia un producto.

Ejemplo 2: Plataforma de Blog

Un esquema de blog es un ejemplo de enseñanza clásico porque demuestra varios tipos de relaciones con claridad. La tabla users almacena los autores. La tabla posts tiene id, user_id (FK), title, slug, body, published_at y status. Una tabla comments agrega id, post_id (FK), user_id (FK), body y created_at — una relación de un post tiene muchos comentarios. Para etiquetas, una tabla tags (id, name, slug) y una tabla de unión post_tags (post_id, tag_id) implementan una relación muchos a muchos entre posts y etiquetas.

Ejemplo 3: Autenticación de Usuario para SaaS

Las aplicaciones SaaS modernas necesitan más que una tabla users. Un esquema de autenticación de nivel producción típicamente incluye users (id, email, password_hash, email_verified_at, created_at), personal_access_tokens (id, tokenable_id, tokenable_type, name, token, last_used_at, expires_at) para tokens de API, y password_reset_tokens (email, token, created_at). Para el login con OAuth, una tabla oauth_accounts vincula IDs de proveedores externos con usuarios locales: id, user_id (FK), provider, provider_id, access_token, refresh_token.

Ejemplo 4: Herramienta de Gestión de Proyectos

Un esquema de gestión de proyectos se centra en espacios de trabajo, proyectos y tareas. La tabla workspaces (id, name, owner_id) es el contenedor de nivel superior. projects (id, workspace_id FK, name, description, status) pertenecen a espacios de trabajo. tasks (id, project_id FK, assignee_id FK a users, title, description, status, due_date, position) pertenecen a proyectos. Una tabla de unión workspace_members (workspace_id, user_id, role) implementa la relación muchos a muchos entre usuarios y espacios de trabajo con una columna role (owner, admin, member) adjunta a la unión.

Ejemplo 5: Sistema de Gestión Hospitalaria

Los esquemas hospitalarios ilustran relaciones más complejas. patients (id, name, date_of_birth, blood_type, contact_info) almacenan datos demográficos. doctors (id, user_id FK, specialty, license_number) extienden la tabla de usuarios. appointments (id, patient_id FK, doctor_id FK, scheduled_at, status, notes) crean un puente muchos a muchos entre pacientes y doctores a lo largo del tiempo. medical_records (id, patient_id FK, doctor_id FK, diagnosis, treatment, recorded_at) almacenan el historial clínico. prescriptions (id, record_id FK, medication_name, dosage, instructions) pertenecen a los registros médicos.

Cómo Leer un Diagrama ER

Empieza escaneando los nombres de las tablas para entender el dominio. Luego observa las relaciones — traza cada línea de una tabla a otra y lee los símbolos de cardinalidad. Una línea de users a orders con una barra simple en el extremo de users y una pata de cuervo en el extremo de orders se lee: "un usuario tiene muchos pedidos." Finalmente, examina los nombres y tipos de columnas para entender qué datos se almacenan. Las columnas de clave foránea (user_id, order_id) hacen que las columnas de relación sean inmediatamente obvias.

Construyendo Diagramas ER con ER Flow

ER Flow está construido específicamente para crear diagramas ER exactamente como los descritos en este artículo. Puedes agregar tablas visualmente, definir columnas con tipos y restricciones, y dibujar relaciones conectando tablas con un arrastre. La notación Crow's Foot se renderiza automáticamente. Cuando tu diseño está listo, ER Flow genera archivos de migración SQL — de modo que el diagrama y el esquema real de la base de datos siempre estén sincronizados. Ya sea que estés diseñando desde cero o haciendo ingeniería inversa de una base de datos existente, ER Flow hace el proceso rápido y colaborativo.