Modèle EAV
Présention
Magento possède certains objets au format EAV :
- Produits
- Catégories
- Clients *
- Adresses clients *
(*) ces objets ont une structure EAV mais elle n'est pas utilisée, les attributs standard sont de type static et sont donc présents dans la table entity de base.
Ces objets ne sont pas structurés dans une seule table (sans compter les tables de liaison n-n).
Tout est découpé en fonction du type du champ.
Exemples
Modèle standard
| ID client | Nom | Prénom | Age | |
|---|---|---|---|---|
| 1 | fma@ph2m.com | MARTINEZ | Frédéric | 35 |
| 2 | jean.durand@gmail.com | DURAND | Jean | 40 |
Table : clients
Modèle EAV
| ID_entite | Active |
|---|---|
| 1 | 1 |
| 2 | 1 |
Table : clients_entite
| ID | ID_entite | Name | Value |
|---|---|---|---|
| 1 | 1 | Nom | MARTINEZ |
| 2 | 2 | Nom | DURAND |
| 3 | 1 | Prénom | Frédéric |
| 4 | 2 | Prénom | Jean |
| 5 | 1 | fma@ph2m.com | |
| 6 | 2 | jean.durand@gmail.com |
Table : clients_entite_varchar
| ID | ID_entite | Name | Value |
|---|---|---|---|
| 1 | 1 | Age | 35 |
| 2 | 2 | Age | DURAND |
Table : clients_entite_int
Avantages & Inconvénients
Avantages
- Souplesse dans nos modules. Il n'est plus nécessaire de faire un
ALTER TABLEpour ajouter un champ. - Seule l'ajout d'une ligne permet l'ajout d'un attribut.
- La structure des tables est commune à tous les Magento, simplifiant leur maintenance
- Gestion des valeurs par store facilitée
Inconvénients
- Lourdeur au niveau de la base de données
- Imports / Exports complexes
Le flat catalog
Le flat catalog :
- Quand le flat catalog est activé, alors Magento concatène les tables EAV en une table unique afin que le système n'aille faire ses requêtes que dans une seule table par store pour les produits et les catégories :
catalog_product_flat_1catalog_category_flat_store_1