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.
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.
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 EAV | Inconvenientes 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 delcatalog_product_entity
mesa. Cada producto recibe su únicoentity_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.
- 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. Laentity_id
es inmutable y es la clave principal de lacustomer_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.
- 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 delsales_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 clienteentity_id
valor de lacustomer_entity
mesa.
- 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 lasales_order_item
mesa. Si un cliente compra varios productos dentro del mismo pedido, cada producto crea una nueva fila en elsales_order_item
mesa. - nombre - El nombre textual del producto.
- identificación de producto El
product_id
corresponde a laentity_id
valor en elcatalog_product_entity
mesa.
- Solicitar ID El
order_id
corresponde a laentity_id
valor en elsales_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.