Tengo una solicitud para permitir que una tabla dinámica tenga 1000 columnas (seleccionadas al azar por mis usuarios finales). Esto me parece una mala idea. Es una tabla personalizable por lo que tendrá una mezcla de varchar(200)
y float
columnas (el float se adapta mejor a las aplicaciones de tipo doble de C++). Esta base de datos es principalmente un índice para una aplicación heredada y sirve como un repositorio de informes. No es el sistema de registro. La aplicación tiene miles de puntos de datos muy pocos de los cuales podrían ser normalizados.¿Cuántas columnas son demasiadas para una tabla de SQL Server 2005?
¿Alguna idea de cuáles son las implicaciones de rendimiento de esto? ¿O un tamaño de mesa ideal para particionar esto también?
Como no sé qué campos de los 20k de opciones que los usuarios finales seleccionarán, la normalización de las tablas no es factible. Puedo separar estos datos en varias tablas que tendría que administrar dinámicamente (los campos se pueden agregar o colgar. Las filas se eliminan y el sistema de registro se vuelve a analizar para llenar la tabla.) Mi preferencia es retroceder y normaliza todos los 20k bits de datos. Pero no veo que eso suceda.
Estas columnas se relacionarían con los puntos de datos en una aplicación. Si el usuario anuncia el campo, esperaría que los valores normalmente no sean nulos –
"Si el usuario agrega el campo", me indica que sería nulo de lo contrario. ¿Esta lista de campo es dinámica? ¿Va a agregar columnas para admitir la adición de campos? Entonces una relación de 1 a muchos está en orden. –