Ir al contenido
DocuGraph

ecommerce-angular-spring

ADR-13 Atributos de producto con JSONB

ACEPTADA — 2026-09-12

Qhatu sirve a tiendas de cualquier sector. Cada sector necesita atributos distintos por producto:

  • Electrónica: ram, procesador, almacenamiento.
  • Ropa: talla, color, material, género.
  • Electrodomésticos: voltaje, potencia, capacidad.

Añadir columnas fijas por sector en products sería inmanejable.

  1. NoSQL (MongoDB) — descartado: complejidad operacional injustificada para el MVP.
  2. EAV (Entity-Attribute-Value) — descartado: queries complejas y lentas.
  3. JSONB en PostgreSQL — adoptado: esquema flexible dentro de una BD relacional ya existente.

Añadir columna attributes JSONB NOT NULL DEFAULT '{}' en la tabla products.

  • Cada producto guarda sus atributos específicos de sector en JSON.
  • PostgreSQL puede indexar campos JSONB con GIN si se necesita búsqueda por atributo (post-MVP).
  • El backend valida la estructura de attributes según la categoría (post-MVP).