Ya que ya sabes y manejas lo básico, ha llegado el momento de probar tus conocimientos en un proyecto real. Normalmente, las bases de datos de proyectos reales se dividen en:
- pequeñas - hasta 100 tablas
- medianas - 100-1000 tablas
- grandes - desde 1000 tablas.
Sin experiencia, es difícil imaginar para qué hacen falta más de 100 tablas. Así que hoy te voy a dar esa oportunidad :)
Te voy a pasar una base de datos relacional realista para una plataforma de e-commerce (Marketplace). La base está dividida en esquemas, cada uno encargado de un dominio concreto: usuarios, productos, pedidos, logística, marketing, soporte, etc.
El proyecto tiene 109 tablas, repartidas en 11 esquemas. Cada tabla tiene claves foráneas y está preparada para ampliarse con catálogos y tablas de sistema.
Estructura de la base de datos
Esquema user — Usuarios y actividad
El esquema user contiene tablas de cuentas, perfiles, información de contacto, logs de acceso, reseñas y conexiones sociales.
Ejemplos de tablas:
account— datos de registroprofile— información personalreview,comment— reseñas y comentarios
Esquema product — Productos y catálogo
El esquema product contiene descripciones de productos, sus variantes, atributos, imágenes, estados e historial de cambios.
Ejemplos de tablas:
product,variant— productos y modificacionesattribute,tag— características y tagssupplier,composition— fabricantes y composición
Esquema order — Pedidos y carritos
Incluye el mecanismo para crear y seguir pedidos, estados, devoluciones y pagos.
Ejemplos de tablas:
order,order_itemstatus_log,return,cancellationinvoice,discount
Esquema logistics — Almacenes, envíos, rutas
Gestión de inventario, movimientos, envíos y rutas.
Ejemplos de tablas:
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
Esquema payment — Pagos y transacciones
Guarda información sobre sistemas de pago, transacciones, wallets y devoluciones.
Ejemplos de tablas:
payment,transaction,refundwallet,wallet_transactiongateway,method
Esquema marketing — Promos y publicidad
Incluye tablas de códigos promocionales, banners, programas de referidos y productos destacados.
Ejemplos de tablas:
campaign,promo_code,discountreferral_program,featured_product
Esquema support — Soporte técnico
Sistema de tickets, mensajes, estados y feedback sobre el soporte.
Ejemplos de tablas:
ticket,ticket_message,ticket_statusagent,feedback
Esquema analytics — Métricas y comportamiento
Seguimiento de sesiones, acciones de usuarios, conversiones y métricas.
Ejemplos de tablas:
event,session,click,page_viewgoal,metric_snapshot
Esquema admin — Administración y gestión
Tablas de administradores, roles, logs de auditoría y configuraciones del sistema.
Ejemplos de tablas:
admin,admin_roleaudit_log,setting,api_token
Esquema content — Páginas estáticas y bloques
Contenido para CMS: páginas, menús, traducciones y versiones.
Ejemplos de tablas:
page,block,menu,translation,version
Esquema ref — Catálogos y meta-tablas
Tipos, estados, países, motivos de devolución y más.
Ejemplos de tablas:
country,currency,status,payment_statusrefund_reason,inventory_change_reason
Creación de tablas
Para hacerte la vida más fácil, te voy a pasar scripts listos para crear todas las tablas de la base de datos.
Solo tendrás que descargar el script SQL con el código y ejecutarlo.
- Cree una base de datos vacía en PostgreSQL.
- Descargue el esquema.
- Importe la estructura de la base de datos:
psql -U postgres -d marketplace_db < init_schema.sql
Carga de datos
También los datos para todas las tablas.
GO TO FULL VERSION