2011-03-11 10 views
5

Si tengo una matriz M por N llena de datos, ¿cuál es la mejor manera de guardarla en una tabla SQL para consultas rápidas? Puedo guardar una tabla de 3 columnas (X, Y, Z) con las filas totales de MN, o simplemente M filas con N columnas. N es del orden de cientos a miles, M puede ser mucho más grande. Supongo que la segunda forma es más rápida para la consulta, ya que la consulta se puede construir sobre nombres de columna conocidos. Pero, ¿recomendaría tener tantas columnas en una tabla? gracias,cuál es la forma recomendada de guardar una matriz M por N en la tabla sql

Respuesta

7

Su segunda opción (N columnas) dificultará la selección de valores de la columna desconocida en tiempo de compilación (deberá generar selecciones dinámicamente). Así que iré con la tabla (X, Y, valor) y haré (x, y) una clave principal.

+0

Estoy de acuerdo - una tabla, con X, Y y valor es la manera más limpia de hacerlo. Esto también se puede extender fácilmente a N dimensiones. –

2

Tendrás una limitación en el número máximo de columnas que una tabla puede tener en cualquier RDBMS. Por ejemplo, SQL Server 2008 tiene un máximo de 1.024 columnas para una tabla no amplia y 30.000 columnas para una tabla ancha, Oracle tenía 1.000 columnas como máximo (aunque no estoy seguro de si esa limitación cambió). Entonces recomiendo tu primera opción, de hecho, la hubiera elegido incluso sin límite de columna.

Cuestiones relacionadas