Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2012, 10:15
jasoto
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Modelo de datos: ¿muchas columnas o muchos registros?

Hola, tengo una consulta para quien quiera y pueda orientarme: Tengo que crear una tabla que en la que deben insertarse por cada carga mensual un cierto numero de campos, que se “multiplican” por 4 diferentes categorías, cada una de las cuales tiene varios posibles valores. Mi duda es si crear una tabla con muchas columnas para crear menos registros o al revés, crear menos columnas, aunque a costa de tener que guardar más registros. Me explico y detallo:
La opción extrema en un sentido (mínimo numero de columnas y máximo numero de registros) sería crear una tabla con 6 columnas (PK + 4 para cada una de las categorías + valor). Los posibles valores de cada categoría son Categ_A = 8; Categ_B = 4; Categ_C = 4; Categ_D = 2), lo cual supondría tener que guardar el producto cartesiano de sus posibles valores, es decir, mínimo 70.000 * 8 *4 *4 *2  17.920.000 registros por carga, es decir, parametrizándola al máximo, para simplificar el Modelo. Ejemplo:
PK CATEG_A CATEG_B CATEG_C CATEG_D VALOR
1 A1 B1 C1 D1 A1B1C1D1
2 A1 B1 C1 D2 A1B1C1D2
3 A1 B1 C2 D1 A1B1C2D1
4 A1 B1 C2 D2 A1B1C2D2

La opción más opuesta (mínimo numero de columnas y máximo numero de registros) sería que la tabla a crear tuviera 257 columnas (PK + (8 * 4 * 4 *2)) es decir, todas las posibles combinaciones de los valores de las categorias, lo cual serviría para tener que guardar 70.000 registros por carga. Ejemplo:
PK CATEG_A1B1C1D1 CATEG_A1B1C1D2 CATEG_A1B1C2D1 CATEG_A1B1C2D2 …
1 A1B1C1D1 A1B1C1D2 A1B1C2D1 A1B1C2D2 …


Obviamente, hay múltiples opciones intermedias, como por ejemplo crear una tabla de 33 columnas (PK + (4 * 4 * 2), es decir, las combinaciones de 3 de las 4 categorías, para albergar 560.000 registros por carga. Ejemplo:
PK CATEG_A CATEG_B1C1D1 CATEG_B1C1D2 CATEG_B1C2D1 CATEG_B1C2D2 …
1 A1 B1C1D1 B1C1D2 B1C2D1 B1C2D2 …
2 A2 B1C1D1 B1C1D2 B1C2D1 B1C2D2 …

Otros datos que pueden ayudaros a evaluar mi consulta:
Frecuencia y tipo de las cargas: 1 vez / mes, en proceso batch nocturno, que insertaría cada vez de 70.000 a 17.920.000 registros, según lo dicho.
Indices: podría crear los indices que fueran necesarios.
Consultas On-Line: la mayoría de las consultas se harían sobre uno de los 8 posibles valores de la CATEG_A.

¿me he explicado? ¿necesitáis más información para orientarme?