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.
相关问题
- NOT DISTINCT query in mySQL
- Flush single app django 1.9
- keeping one connection to DB or opening closing pe
- Mysql-installer showing error : Memoy could not be
- Android Room Fetch data with dynamic table name
相关文章
- Connection pooling vs persist connection mysqli
- Magento, translate validation error messages
- Speed up sqlFetch()
- How Do I Seed My Database in the setupBeforeClass
- I set a MySQL column to “NOT NULL” but still I can
- Where in Django can I run startup code that requir
- Google OAuth 2.0 User id datatype for MYSQL
- Storing User Settings - anything wrong with using
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
Here you go. An illustrative story: http://www.simple-talk.com/opinion/opinion-pieces/bad-carma/
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.
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