Explicación de los tipos de bases de datos de Magento

23 de septiembre de 2021

Introducción

Magento proporciona comercio electrónico soluciones para empresas independientemente de su tipo o tamaño. Para admitir una amplia variedad de modelos comerciales, la base de datos de Magento debe ser flexible y escalable.

Las bases de datos de Magento utilizan el modelo EAV para almacenar datos. Este enfoque permite a los comerciantes agregar y actualizar atributos sin modificar el esquema de la base de datos central.

Aprenda todo sobre los tipos de bases de datos de Magento y aproveche al máximo su estructura de base de datos atípica.

Comerciante que almacena datos en una base de datos / suitecase.

Modelo de datos EAV

El modelo de datos EAV (Entidad-Atributo-Valor) almacena entidades, atributos y pares de atributo-valor en tablas separadas.

  • Entidad - Una entidad es un cliente individual, producto, pedido, etc. Cada entidad necesita tener un registro de base de datos único.
  • Atributo - Los atributos describen una entidad. Por ejemplo, un producto tiene un color, tamaño o precio, mientras que un cliente tiene un nombre o correo electrónico. Las tablas de atributos contienen columnas con ID de atributo, nombres, tipos de datos, así como columnas para validar los valores de entrada.
  • Valor - El valor está emparejado con un atributo. Por ejemplo, el atributo Precio tiene el valor $11, mientras que el valor del atributo Correo electrónico is emailcliente@ejemplo.com.

Tiendas de comercio electrónico Necesito usar muchos atributos para describir diferentes entidades. Sin embargo, solo se utiliza una pequeña cantidad de atributos para los pares entidad-atributo individuales. Esto significa que la mayoría de las filas en un convencional modelo de base de datos contener un valor NULO.

Una descripción básica de un modelo de datos EAV.

En un esquema relacional, los atributos se almacenan como columnas, mientras que el modelo EAV registra los atributos en filas. Este enfoque permite a los administradores de bases de datos agregar y modificar atributos fácilmente y también evitar almacenar valores vacíos.

Ventajas de EAVInconvenientes de EAV
Escalable y más flexible que el modelo relacional tradicional.Las consultas requieren múltiples combinaciones de tablas y son más lentas que en las bases de datos relacionales.
Los administradores pueden introducir nuevos atributos sin alterar la estructura de la base de datos.Las tareas que involucran grandes volúmenes de datos estructurados EAV pueden requerir lógica y herramientas adicionales.
Conserva espacio al no almacenar valores NULL.Los desarrolladores que no estén familiarizados con el modelo EAV pueden encontrar una curva de aprendizaje pronunciada.

Magento utiliza el modelo EAV y el esquema de base de datos relacional estándar para superar algunas de las limitaciones de un enfoque EAV puro.

Bases de datos de Magento

Magento registra conjuntos de datos en varias tablas principales. Las tablas comunes de la base de datos de Magento incluyen:

  • entidad_producto_catálogo
  • entidad_categoría_catálogo
  • catálogo_categoría_producto
  • entidad_cliente
  • órdenes de venta
  • artículo_de_pedido_de_ventas
  • cotización inicial

Las grandes tiendas de comercio electrónico necesitan usar muchas tablas adicionales para almacenar, relacionar y extraer datos valiosos de la base de datos de manera efectiva.

Productos

Las filas del catalog_product_entity tabla representan productos individuales. Cuando un administrador crea un nuevo producto en Magento Admin, el sistema inserta una nueva fila en la tabla.

La entrada normalmente contiene los siguientes atributos:

  • entidad_id El entity_id es la clave principal del catalog_product_entity mesa. Cada producto recibe su único entity_id.
  • entidad_tipo_id - Magento separa las entidades en varias categorías como clientes, direcciones, productos, etc. entity_type_id define la categoría. Por ejemplo, el número 4 es el valor predeterminado de la categoría de producto.
Un ejemplo de tabla de catalog_product_entity Magento.
  • atributo_set_id - Los productos que comparten el mismo conjunto de descriptores tienen el mismo attribute_set_id.
  • sku - Cada producto creado en Magento recibe una designación única de SKU (Stock Keeping Unit).
  • Creado en - Muestra la hora y la fecha en que se creó cada producto.

El catalog_category_product establece una relación entre productos y categorías. Si un producto aparece en varias categorías, puede tener varias entradas en la tabla.

Filas en el catalog_category_entity La tabla contiene datos sobre categorías individuales.

Clientes

Una fila en el customer_entity La tabla contiene datos sobre una cuenta / usuario registrado. La tabla contiene información básica del cliente, como el nombre, correo electrónico, dirección, etc. del cliente.

  • entidad_id - Cuando un cliente se registra, el sistema crea una nueva fila dentro del customer_entity mesa. La entity_id es inmutable y es la clave principal de la customer_entity mesa.
  • entidad_tipo_id El entity_type_id El valor muestra qué tipo de entidad representa este registro. El valor predeterminado para la entidad del cliente en Magento es 1.
Un ejemplo de tabla customer_entity en Magento.
  • email - Este campo registra la dirección de correo electrónico que ingresa un cliente al crear una cuenta.
  • Creado en - Esta columna muestra la fecha y hora en que el usuario se unió al sitio web.

Los datos sobre cada usuario que se registra en un sitio web de Magento se almacenan en el customer_entity mesa incluso si no completan su compra.

Ventas

El sales_order La tabla de registros de pedidos realizados en el sitio web indica qué cliente realizó el pedido, el total del pedido y cuándo el cliente realizó el pedido.

  • entidad_id - Una vez que un cliente crea un pedido, el sistema crea un valor de identificación único. los entity_id valor es la clave principal del sales_order mesa.
  • customer_id - Esta columna es el identificador único del cliente que realizó este pedido en particular. los customer_id el valor representa el valor del cliente entity_id valor de la customer_entity mesa.
Un ejemplo de tabla sales_order de Magento.
  • total parcial - El subtotal representa el monto total que el cliente pagó con este pedido individual.
  • Creado en - La fecha y hora exactas en que el cliente creó el pedido.

Filas en el sales_order_item tabla de registro de artículos de pedido individuales. Cada fila contiene detalles sobre productos individuales en cada pedido, la cantidad comprada y el pedido asociado con el artículo.

  • item_id El item_id columna es la clave principal de la sales_order_item mesa. Si un cliente compra varios productos dentro del mismo pedido, cada producto crea una nueva fila en el sales_order_item mesa.
  • nombre - El nombre textual del producto.
  • identificación de producto El product_id corresponde a la entity_id valor en el catalog_product_entity mesa.
La tabla sales_order_item en Magento.
  • Solicitar ID El order_id corresponde a la entity_id valor en el sales_order mesa. Relaciona un artículo de pedido individual con el pedido.
  • cantidad_pedida - Esta columna muestra el número de unidades del producto incluidas en un pedido específico.
  • precio El price La columna contiene los precios de cada producto dentro del pedido del cliente.

Magento almacena instancias de carrito de compras en el quotes mesa. El sistema almacena carros de la compra tanto convertidos como abandonados. El número de registros puede inflar el quotes tabla a lo largo del tiempo. Es necesario eliminar registros como entradas de carrito no convertidas periódicamente.

Conclusión

Aprendió cómo funciona el modelo EAV y cómo Magento utiliza EAV para permitir a los comerciantes administrar bases de datos e introducir nuevos atributos.

Este enfoque brinda a los comerciantes de Magento mucha flexibilidad y la oportunidad de hacer crecer su cartera de productos y su base de clientes sin comprometer la velocidad y el rendimiento de la base de datos.

Acerca del autor.
Vladímir Kaplarevic
Vladimir es un redactor técnico residente en CCBill. Tiene más de 8 años de experiencia en la implementación de comercio electrónico y soluciones de pago en línea con varios proveedores de servicios de TI globales. Su atractivo estilo de escritura proporciona consejos prácticos y tiene como objetivo despertar la curiosidad por las tecnologías innovadoras.
Hable con un especialista en asistencia comercial