Questions about Magento's Entity Attribute Value (EAV) implementation

Magento uses EAV database table structure for products, categories and customers.

In EAV, data is stored across several tables:

  • Entity table (for example the products with basic information such as sku and URL key)
  • Attribute table (for example all possible product attributes)
  • Value tables (for example all integer values for product attributes)

A value references an attribute and an entity.

This structure allows flexibility with attributes without adding columns to the entity table itself

The downside is slow select queries with many joins. This is why Magento introduced indexes.

history | excerpt history