Search code examples
databasenormalization

Does EAV datamodels considered as advanced form of database normalization?


i am confused when looking at databases designed with the EAV concept. EAV stands for entity, attribute and value. my question is: Does EAV datamodels considered as advanced form of database normalization ? is it a "must use" to be "up to date" ?

to cut long things short: when to use EAV and when not?


Solution

  • No, they are considered to be an anti-pattern.

    They can be seen as taking normalization to an absurd level (I have seen people think that this is a good idea), causing one to lose all notion of easy ad-hock querying and causing havoc with the notion of proper indexing.

    EAV has a place when you have no idea what the schema will be (say for a client customizable "database").