Question

I'm doing some custom work with Magento, which has a database design based upon the EAV model, and I need some good resources/tutorials that explain the EAV database model. Please don't provide Wikipedia as a resource... I'm looking for something that teaches EAV in a friendly way for beginners.

Was it helpful?

Solution

OTHER TIPS

The friendliest thing you can do for a beginner is to teach them the down side of EAV.

The up side of EAV is so seductive that a lot of newbies will dig a very big hole for themselves before they realize it.

Hopefully the google search will reveal at least some of the down side.

In a nutshell, EAV is optimized for getting data in, not getting data out. But that might be an acceptable trade-off. I managed a project that had to develop a general clinical trial data management system. There could not be many common data elements because each trial needs to collect different data. Capturing data was urgent; we had to develop data entry pages under pressure. Reports are harder with EAV, but they're also less urgent, and with some clever thought they can be simplified a bit. EAV has served us well.

I found this guide to be the most helpful for Magento: http://alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1

I found this article really helpful, it provides considerations and consequences associated with an EAV schema and to provide a basic framework for its implementation in SQL Server.

http://weblogs.sqlteam.com/davidm/articles/12117.aspx

You should check this article: The EAV/CR Model of Data Representation.

It describes EAV with Classes and Relationships, a more OO approach and not just a plain reference-key-value implementation.

See Dinua V, and Nadkarnia P. Guidelines for the Effective Use of Entity-Attribute-Value Modeling for Biomedical Databases. Int J Med Inform. 2007 ; 76: 769–779. http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2110957

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top