CodeGym /Cursos /SQL SELF /Arquitectura de la Base de Datos del Marketplace

Arquitectura de la Base de Datos del Marketplace

SQL SELF
Nivel 61 , Lección 0
Disponible

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 registro
  • profile — información personal
  • review, 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 modificaciones
  • attribute, tag — características y tags
  • supplier, 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_item
  • status_log, return, cancellation
  • invoice, discount

Esquema logistics — Almacenes, envíos, rutas

Gestión de inventario, movimientos, envíos y rutas.

Ejemplos de tablas:

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, carrier, route

Esquema payment — Pagos y transacciones

Guarda información sobre sistemas de pago, transacciones, wallets y devoluciones.

Ejemplos de tablas:

  • payment, transaction, refund
  • wallet, wallet_transaction
  • gateway, 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, discount
  • referral_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_status
  • agent, feedback

Esquema analytics — Métricas y comportamiento

Seguimiento de sesiones, acciones de usuarios, conversiones y métricas.

Ejemplos de tablas:

  • event, session, click, page_view
  • goal, 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_role
  • audit_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_status
  • refund_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.

  1. Cree una base de datos vacía en PostgreSQL.
  2. Descargue el esquema.
  3. 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.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION