Una aplicación que heredé sigue los resultados de las pruebas de laboratorio realizadas en muestras de materiales. Los datos se almacenan en una sola tabla (tblSampleData) con una clave principal de SampleID y 235 columnas que representan los posibles resultados de las pruebas. El problema es que solo se realizan algunas pruebas por muestra, por lo que cada fila contiene más de 200 nulos. En realidad, hay una segunda tabla similar (tblSampleData2) con otras 215 columnas principalmente nulas y una clave principal de SampleID. Las dos tablas tienen una relación de uno a uno y la mayoría de los SampleID tienen algunos datos en ambas tablas. ¡Para cada SampleID, sin embargo, hay fácilmente 400 columnas nulas!Ahogamiento en un mar de nulos
¿Este es un mal diseño de la base de datos? Si es así, ¿qué norma de forma normal está rota? ¿Cómo puedo consultar esta tabla para identificar qué grupos de columnas suelen rellenarse con datos? Mi objetivo sería tener, digamos 45 tablas con 10 columnas y menos valores nulos. ¿Cómo puedo hacer esto? ¿Cómo evito romper las aplicaciones existentes?
Las tablas tienen alrededor de 200,000 registros de muestra hasta el momento. Los usuarios me piden que agregue más columnas para más pruebas, pero prefiero construir una nueva tabla. ¿Es esto sabio?
¿Qué tipo de consultas está ejecutando esta aplicación en la base de datos? – quantumSoup
CRUD básico. Inserte un nuevo registro de prueba, actualícelo a medida que se completen las pruebas, lea los resultados en gráficos e informes, casi nunca elimine. Las consultas de lectura se realizan en pequeños conjuntos de datos, por cliente. – DeveloperDan
Consulte mi respuesta larga a continuación, pero sería interesante conocer los tipos de datos de las aproximadamente 400 columnas de resultados, específicamente si son todos del mismo * tipo de datos. –