1

I was recently exposed to the concept of an Entity Attribute Value database model via. the Magento e-commerce system. Varien (the company behind Magento) has used a relational database (mysql) to create an EAV style model using PHP Objects.

I'm curious if there are "native" EAV database solutions out there. The "featured recently on stack overflow CouchDB" seems like it might fit this model. Is that a correct assumption, or is CouchDB something else? Where else could I find EAV in the wild?

Relational is to MySQL as EAV is to _______?

Alana Storm
  • 164,128
  • 91
  • 395
  • 599
  • I'd still say that relational databases work for eav. However, it seems like it'd also be a good fit for couchdb style databases as well, now that you've mentioned it. – benlumley Jul 11 '09 at 12:25
  • @benlumley: How would you make an EAV table in a relational database enforce a NOT NULL constraint? – Bill Karwin Mar 28 '10 at 22:57
  • @billkarwin true, and a good point. 6 months on from last comment, i agree with you that non relational is a better solution, not an equally good one - i've tried some non relational dbs now! but is notnull any easier there? – benlumley Mar 29 '10 at 21:05
  • @benlumley: At least with non-relational db's you're not violating any rules by storing variable attributes. :-) But features like NOT NULL and JOIN point out that SQL still has some advantages. – Bill Karwin Mar 30 '10 at 05:30

1 Answers1

3

Relational is to MySQL as EAV is to ...

Various non-relational database technologies are becoming more popular, to support dynamic attributes. Here are a few you should check out:

Any of these are preferable to trying to force the EAV data model into a relational database!

See also The Next-gen Databases

Community
  • 1
  • 1
Bill Karwin
  • 538,548
  • 86
  • 673
  • 828