L'EAV (Entity-Attribute-Value) est un modèle de données qui permet de stocker des attributs dynamiques sans modifier le schéma de la base de données. Chaque valeur est stockée comme un triplet : entité, attribut, valeur.
Flexibilité du schéma
Le modèle EAV permet d'ajouter de nouveaux attributs sans migration de base. C'est le modèle de prédilection des PIM (Akeneo, Magento) et des CMS e-commerce où chaque type de produit possède des attributs différents : dimensions pour du mobilier, composition pour du textile, puissance pour de l'outillage.
Compromis et limites
La flexibilité a un coût : les requêtes EAV sont plus complexes et moins performantes que sur un schéma relationnel classique. Récupérer tous les attributs d'un produit nécessite autant de jointures que d'attributs. C'est pourquoi les systèmes matures utilisent des vues dénormalisées (flat tables) pour la lecture, tout en gardant l'EAV pour l'écriture.
L'EAV est un outil puissant pour modéliser des données hétérogènes, mais il impose une architecture de lecture optimisée pour rester performant à grande échelle.