Comment Re:Books and Documentation Behind the Times (Score 1) 60
Magento is so very flexible (the only free e-commerce system I've seen that uses EAV)
EAV is a plus? There's a reason it is considered a well-known anti-pattern. Designing a small (as in, internal-only or experimental) project this way because your data model is unimportant to the functionality of the software is one thing. Building an entire shopping cart, CMS, inventory management and CRM suite around it is the height of insanity. They might as well store their content in a one-column table using CSV.
You have a point there... I've seen people who see the pattern on the level with other things like goto statements. But I stand by my statement you quoted, because the flexibility directly correlates to the fact that they use EAV.
Businesses out there have so many different types of "products" and "attributes," and I've seen all of these packages attempt to tackle attributes... and I think the usage of EAV to tackle such a problem was justified.
That said, I definitely do not agree with their use of that pattern in some aspects of their software, though I can see why they did it. You can pretty much add fields to anything in Magento. Throw an extra text field here, and extra drop-down there. Makes it very easy for non-developers to add things.
The biggest problem is that it can cause resource issues and obviously makes writing raw queries a little more difficult... but I think the way it behaves with the code models is much cleaner than, say, having one single table with different columns for each data type.
I guess that's really up to argument though. Like I said, you bring up some good points.