Magento Themes and Magento Extensions

Creating EAV based model(s) in Magento

Share
Posted on March 3rd, 2015 | Posted by admin

Magento EAV (Entity Attribute Value) data model is used to get flexibility for your data, but it brings more complexity than relation table model. If you need data model that will have flexible attributes which can be dynamically added, for example from Magento admin panel, then EAV is the best solution for you. If using EAV, you don’t need to change table structure for every new attribute like you do on flat tables (creating new colums).

Bad things which EAV flexibility brings are slower Queries and more complex table structures. Let’s talk more about performance, EAV system is slower than using flat table for resource model, because it uses a lot of mysql joins (depend on attributes number) and, as we know, Query with join data from other tables is always slower than select Query from one table. This problem can be solved with two solutions. For Enterprise Magento enable full page cache and page will be cached, so with or without EAV there won’t be any difference, only first load(slower for EAV) and after that all is cached. Second solution is to make flat table and indexer for creating table from EAV entity attributes.

Page 2 of 2«12