I have some doubt in EAV. As for as I know EAV is should only be used when you are not sure about number of fields in a table which can vary in future. So eav_attribute table holds the attribute's and the values are stored in,

- eav_entity, eav_entity_int (for holding Integer values),
- eav_entity_varchar (for holding Varchar values),
- eav_entity_datetime (for holding Datetime values),
- eav_entity_decimal (for holding Decimal/float values),
- eav_entity_text (for holding text (mysql Text type) values).

I have checked those tables in default magento installed database and my magento projects (as far as i did yet) but, those tables doesn't stored any data. All are empty. Its make me mad.. Where the EAV used exactly..? Can any body explain about this with example please ..?


2 Answers 2



Magento started with this concept but it was too slow, so they decided to have tables for every eav_type on its own.

you find the following tables (maybe I forget some)

  • catalog_category_entity_*
  • catalog_product_entity_*
  • customer_entity_*
  • customer_address_entity_*

The basic data are stored in the entity table, e.g. customer_entity

  • Oh...Yes.. I got it..thanks Fabian...But What the tables(in my question) for..? For what purpose still we having that..?
    – Elavarasan
    Commented Aug 26, 2014 at 15:31
  • 2
    Backwards compatibility? And you can build your own EAV-type based upon these tables. Commented Aug 26, 2014 at 15:32

As far as I know these are left is so you can build your own models that use EAV. The standard eav in Magento, Customers, Products etc have their own tables.

For the customer attributes each table starts with customer_entity

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.