Diseño de base de datos. Una db grande o muchas pequeñas?
Publicado por Jaro98 (1 intervención) el 09/10/2015 19:01:46
Hola amigos,
primero de todo quería decirles que recién comencé con bases de datos y quizás estoy preguntando algo muy absurdo pero busqué información sobre ello y no encontré nada.
Expongo mi situación: Supongamos que tenemos una base de datos con las siguientes columnas (variables)
0. id
1. parámetro1
2. parámetro2
3. parámetro3
4. fecha
y tenemos un cierto numero de individuos digamos N.
El programa coge esta base de datos y hace "evolucionar" los parámetros de los individuos, y esta nueva información tiene que quedar registrada. Mi idea era crear nuevas observaciones con la misma id pero cambiando el valor de los parámetros que hayan cambiado y poniendo la nueva fecha de recogida de datos.
De esta forma si tenemos que buscar la evolución de un individuo bastaría con filtrar por ID y al ordenar por fecha veriamos la evolución en los parámetros. Hasta aquí más o menos o menos todo bien, aunque quizás no sea la manera óptima de hacerlo (acepto sugerencias), todo funciona. Veo cierto problema en repetir datos que no cambian una y otra vez en el registro en vez de solo guardar los datos que cambian, pero esto no se me ocurre como modelarlo.
Mi problema viene cuando esta base de datos empieza a ser muy grande. Digamos que cada hora los datos se actualizan y la base de datos incorpora una nueva observación por cada individuo inicial (suponiendo para simplificar que el número de individuos no se incrementa con el tiempo).
En esta base de datos tengo que hacer dos tipos de consultas comúnmente.
- Buscar el historial de un individuo, filtrando por ID por ejemplo
- O por fecha, para observar los valores de todos los individuos en un momento dado
Dudo entre, por ejemplo, hacer una gran base de datos que albergue todo o separarla; digamos, por ejemplo, una base de datos por año o una base de datos por individuo. Pero en ambos casos al hacer una de las consultas tendré que abrir varias bases de datos en lugar de buscarlo todo en una.
Ejemplo:
1. Si para simplificar la gran base de datos hago una por año, cuando quiera buscar el historial de un individuo tendré que abrir tantas bases de datos como tenga para comprobar si mi individuo está ahí y coger sus datos.
2. En el caso de que cree una base de datos por individuo tendré el problema cuando quiera ver los valores de todos los individuos en una fecha determinada.
No sé si me explicado bien, pero si alguien tiene alguna idea le ruego me la comunique. Muchas gracias y si algo no ha quedado muy claro preguntadme e intentaré explicarme mejor.
Mil gracias!
primero de todo quería decirles que recién comencé con bases de datos y quizás estoy preguntando algo muy absurdo pero busqué información sobre ello y no encontré nada.
Expongo mi situación: Supongamos que tenemos una base de datos con las siguientes columnas (variables)
0. id
1. parámetro1
2. parámetro2
3. parámetro3
4. fecha
y tenemos un cierto numero de individuos digamos N.
El programa coge esta base de datos y hace "evolucionar" los parámetros de los individuos, y esta nueva información tiene que quedar registrada. Mi idea era crear nuevas observaciones con la misma id pero cambiando el valor de los parámetros que hayan cambiado y poniendo la nueva fecha de recogida de datos.
De esta forma si tenemos que buscar la evolución de un individuo bastaría con filtrar por ID y al ordenar por fecha veriamos la evolución en los parámetros. Hasta aquí más o menos o menos todo bien, aunque quizás no sea la manera óptima de hacerlo (acepto sugerencias), todo funciona. Veo cierto problema en repetir datos que no cambian una y otra vez en el registro en vez de solo guardar los datos que cambian, pero esto no se me ocurre como modelarlo.
Mi problema viene cuando esta base de datos empieza a ser muy grande. Digamos que cada hora los datos se actualizan y la base de datos incorpora una nueva observación por cada individuo inicial (suponiendo para simplificar que el número de individuos no se incrementa con el tiempo).
En esta base de datos tengo que hacer dos tipos de consultas comúnmente.
- Buscar el historial de un individuo, filtrando por ID por ejemplo
- O por fecha, para observar los valores de todos los individuos en un momento dado
Dudo entre, por ejemplo, hacer una gran base de datos que albergue todo o separarla; digamos, por ejemplo, una base de datos por año o una base de datos por individuo. Pero en ambos casos al hacer una de las consultas tendré que abrir varias bases de datos en lugar de buscarlo todo en una.
Ejemplo:
1. Si para simplificar la gran base de datos hago una por año, cuando quiera buscar el historial de un individuo tendré que abrir tantas bases de datos como tenga para comprobar si mi individuo está ahí y coger sus datos.
2. En el caso de que cree una base de datos por individuo tendré el problema cuando quiera ver los valores de todos los individuos en una fecha determinada.
No sé si me explicado bien, pero si alguien tiene alguna idea le ruego me la comunique. Muchas gracias y si algo no ha quedado muy claro preguntadme e intentaré explicarme mejor.
Mil gracias!
Valora esta pregunta


0