Modèle EAV
Présention
Magento possède certains Objects en base de données au modèle EAV :
- Produits
- Catégories
- Attributs
Ces objects 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 extrême dans nos modules. Il n'est plus nécessaire de faire un ALTER TABLE pour ajouter un champ.
- Seule l'ajout d'une ligne permet l'ajout d'un attribut.
Inconvénients
- Lourdeur incroyable au niveau de la base de données
- Imports / Exports complexes
Solution Magento 1.X
Le flat catalog :
- Quand le Flat 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
Attention à ne pas avoir trop de stores !
En effet, si vous avez 5 magasins, et 2 langues, cela se traduit par 10 stores view, donc 10 flat catalog (en autres problèmes, tels que le trop plein d'URL rewrite pour un même produit)
Formation Magento Developpeur
Magento 1.X