En mi experiencia, esta idea de almacenar campos por filas necesita ser considerada con extremo cuidado - aunque parece dar muchas ventajas, hace que muchas tareas comunes sean mucho más difíciles.
En el lado positivo: es fácilmente extensible sin cambios en la estructura de la base de datos y de alguna manera abstrae los detalles del almacenamiento de datos.
En el lado negativo: tiene que ver todas las cosas cotidianas almacenando campos en columnas da automáticamente en el DBMS: uniones internas/externas simples, inserciones/actualizaciones de una declaración, unicidad, claves externas y otro nivel de db comprobación de restricciones, simple filtrado de pedidos de anuncios de resultados de búsqueda.
Considere en su arquitectura una consulta para devolver todos los artículos con MetalLayer = X y Ancho entre y y z - resultados ordenados por Acoplamiento por longitud. Esta consulta es mucho más difícil de construir y mucho más difícil de ejecutar para el DBMS de lo que sería usar columnas para almacenar campos específicos.
En la balanza, la única vez que utilicé una estructura como la que sugiere fue en un contexto en el que se debían agregar datos adicionales aleatorios no estructurados de forma ad-hoc. En mi opinión, esta sería una estrategia de último recurso si no hubiera forma de que pudiera hacer funcionar una estructura de tabla más tradicional.
Shef, sería funciona, pero no se normalizará. – nageeb
pensé que la clave principal tiene que ser única? – Gordon
Esto no se puede normalizar porque no es una relación. –