• I've seen them used very successfully in applications where the end users have choices on configuration. An accounting system I used to support allowed users to create ledgers with 2 to 10 coding elements. Each element type had a letter as a prefix, and the master data was stored in a single table for all elements. Using a single table made coding somewhat easier, and gave the users maximum flexibility.

    I've used EAV tables to store configuration data in cases where it made sense. I don't like creating tables to hold a single record, so "misc" table has been a part of most of my designs. I include a comment field to document the values inserted.

    Like any other concept, there are appropriate places for EAV/NVP constructs, and it's up to us to make sure they are used correctly.