Hay una diferencia entre EAV hecho fielmente o mal; 5NF hecho por personas calificadas o por aquellos que no tienen ni idea.
La sexta forma normal es la forma normal irreductible (no es posible una mayor normalización). Elimina muchos de los problemas que son comunes, como El problema nulo, y proporciona el último método para identificar los valores perdidos. Es la FN académica y técnicamente robusta. No hay productos para apoyarlo, y no se usa comúnmente. Para ser implementado de manera adecuada y consistente, requiere un catálogo de metadatos para ser implementado. Por supuesto, el SQL requerido para navegar es aún más engorroso (SQL ya es engorroso), pero esto se supera fácilmente mediante la automatización de la producción de SQL a partir de los metadatos.
EAV es un conjunto parcial o un subconjunto de 6NF. El problema es que, por lo general, se realiza con un propósito (permitir que se agreguen columnas sin tener que realizar cambios de DDL) y por personas que no conocen el 6NF y que no implementan los metadatos. El punto es 6NF y EAV ya que los principios y conceptos ofrecen beneficios sustanciales y el rendimiento aumenta; pero comúnmente no se implementa correctamente y los beneficios no se realizan. Bastantes implementaciones de EAV son desastres, no porque EAV sea malo, sino porque la implementación es deficiente.
Por ejemplo. Algunas personas piensan que el SQL requerido para construir las filas 3NF de la base de datos 6NF/EAV es complejo: no, es engorroso pero no complejo. Lo que es más importante, se puede proporcionar una VISTA SQL ordinaria, de modo que todos los usuarios y herramientas de informe vean solo la VISIÓN 3NF directa, y los problemas de 6NF/EAV sean transparentes para ellos. Por último, el SQL requerido puede ser automatizado, por lo que el costo de mano de obra que soportan muchas personas es bastante innecesario.
Así que la respuesta es realmente, Sixth Normal Form, ser el padre de EAV, y una forma más pura, es el reemplazo de la misma. La advertencia es, asegúrese de que se haga correctamente. Tengo un gran db de 6NF, y no sufre ninguno de los problemas que publican las personas, funciona maravillosamente, el cliente está muy contento (ningún trabajo posterior es un signo de completa satisfacción funcional).
que ya han publicado una respuesta muy detallada a otra pregunta que se aplica a su pregunta, así, que usted puede estar interesado en.
Other EAV Question
En lugar de reemplazar lo que tiene, ya que cumple con una necesidad particular, debería considerar aumentar su modelo EAV básico con algo que almacene los cambios a lo largo del tiempo. – RibaldEddie
Estoy de acuerdo con RibaldEddie, no será sencillo, pero agregar una fecha/versión a sus definiciones de atributo probablemente será más fácil que refaccionar completamente todo el código creado en el esquema actual. – JeremyWeir
¿Alguna posibilidad de obtener un cierre en esto? O comentarios y progreso, o voto y elección de respuesta. Gracias. – PerformanceDBA