Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda cómo guardar evolucion de valores...

Estas en el tema de Duda cómo guardar evolucion de valores... en el foro de Mysql en Foros del Web. Buenos días, No se como enfocar el siguiente problema...Me gustaría guardar en mi una base de datos (aun no está diseñada) valores que cambian en ...
  #1 (permalink)  
Antiguo 29/09/2009, 06:35
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Duda cómo guardar evolucion de valores...

Buenos días,

No se como enfocar el siguiente problema...Me gustaría guardar en mi una base de datos (aun no está diseñada) valores que cambian en el transcurso del tiempo.

Os pongo un ejemplo de los valores de bolsa, van cambiando en el tiempo y me gustaría almacenar estos cambios para poder generar luego graficos con la evolución...

¿Cómo los guardaríais? se me ocurre una manera pero no se sí es la más optima...

Tengo dos columnas una el tiempo y otra el valor. Cada vez que un valor cambie almaceno la fecha y hora del cambio y su valor actual, pero dentro de la misma columna.. es decir, con el paso del tiempo acabaría teniendo algo asi...

tiempo | valor
14:30 14:32 14:35 14:40 | 2,30 2,32 2,36 2,35

¿Alguna sugerencia?

Muchas gracias de antemano!!
  #2 (permalink)  
Antiguo 29/09/2009, 06:43
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda cómo guardar evolucion de valores...

TABLA: VALORES

CAMPOS:
ID (autonumerico)
EMPRESA (varchar)
VALOR (numerico)
TIME (numerico)


El campo TIME rellenalo con la funcion time(), que te guarda el timestamp , una cifra numerica que puede ser luego transformada en fecha, por ejemplo de 2839283748 > "13:40 7 marzo 2009" ó simplemente "13:40", lee sobre esto es muy util

Luego con un simple Select * from VALORES where EMPRESA='Santander' ORDER BY TIME DESC tienes lo que decias, los registros ordenados de los diferentes valores que ha ido teniendo la empresa
  #3 (permalink)  
Antiguo 29/09/2009, 06:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Duda cómo guardar evolucion de valores...

Yo te recomendaría tener una tabla historial, que almacene como vos dices, la fehca y hora del cambio y el valor actual. Todo esto queda en 2 o 3 columnas según requieras y tendrás muchos registros, con los cuales podras jugar para graficar o analizar la información adecuadamente.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 29/09/2009, 06:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda cómo guardar evolucion de valores...

Dos columnas, como las planteaste, pero con un registro por cada cambio. Esa sería la forma más eficiente y ortodoxa.
Usa un campo DATETIME y un campo FLOAT o DOUBLE.

Como jamás se repetirá una instancia de tiempo entre dos valores, la fecha la puedes usar como PK. Las búsquedas de valores se volverán muy sencillas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/09/2009, 10:03
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Duda cómo guardar evolucion de valores...

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Dos columnas, como las planteaste, pero con un registro por cada cambio. Esa sería la forma más eficiente y ortodoxa.
Usa un campo DATETIME y un campo FLOAT o DOUBLE.

Como jamás se repetirá una instancia de tiempo entre dos valores, la fecha la puedes usar como PK. Las búsquedas de valores se volverán muy sencillas.
Gracias por las sugerencias pero sigo sin verlo claro del todo...

Porque no se trata de un solo mercado, ej. de la bolsa tenemos varios indices.. IBEX 35, NASDAQ 100, FTSE 100 y para cada mercado tiene sus acciones... son las acciones en este ejemplo las que deberían guardar su evolución historica.

Necesito algo más que dos columnas no? :S:S:S
  #6 (permalink)  
Antiguo 29/09/2009, 10:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda cómo guardar evolucion de valores...

Cita:
Porque no se trata de un solo mercado, ej. de la bolsa tenemos varios indices.. IBEX 35, NASDAQ 100, FTSE 100 y para cada mercado tiene sus acciones... son las acciones en este ejemplo las que deberían guardar su evolución historica.
Entonces simplemente le agregas la PK del mercado donde se origina y haces que la PK de esa tabla sea fecha+claveMercado...
Sería usar una PK compuesta, un caso parecido a lo que propone el post de VUN, sólo que el ID numérico es innecesario y el índice compuesto hace que las búsquedas sean más rápidas en ciertos casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 29/09/2009, 14:08
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Duda cómo guardar evolucion de valores...

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Entonces simplemente le agregas la PK del mercado donde se origina y haces que la PK de esa tabla sea fecha+claveMercado...
Sería usar una PK compuesta, un caso parecido a lo que propone el post de VUN, sólo que el ID numérico es innecesario y el índice compuesto hace que las búsquedas sean más rápidas en ciertos casos.
Gracias de nuevo.

¿Para aclararme tendría algo así ?

Tabla mercado
- mercado (de por sí es primaria ya que no habrá ningun otro mercado que se llame igual.. IBEX 35, NASDAQ 100, FTSE 100)

Tabla valores
- nombre_valor (ABERTIS, ACCIONA, ACERINOX....)
- mercado

Tabla indicadores
- timestamp (clave PK)
- mercado (clave PK)
- nombre_valor
- precio
  #8 (permalink)  
Antiguo 29/09/2009, 16:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda cómo guardar evolucion de valores...

Tomando tu ejemplo, sería en realidad:
Mercados
- mercado VARCHAR (PK)

Valores
- nombre_valor VARCHAR (PK)

Indicadores
- FechaValor DATETIME (clave PK)
- mercado VARCHAR (clave PK, FK)
- nombre_valor VARCHAR (PK, FK)
- precio FLOAT

Valores
- nombre_valor VARCHAR (PK, FK)
- mercado VARCHAR (clave PK, FK)

Obviamente, cualquiera de las tres tablas puede extenderse en atributos, o bien descomponerse en más tablas, de acuerdo a la estructura de datos que se requiera. Lo que has puesto es un ejemplo muy simplificado.
La última tabla no es estrictamente necesaria, pero si conveniente para algunas operaciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 30/09/2009, 00:21
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Duda cómo guardar evolucion de valores...

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tomando tu ejemplo, sería en realidad:
Mercados
- mercado VARCHAR (PK)

Valores
- nombre_valor VARCHAR (PK)

Indicadores
- FechaValor DATETIME (clave PK)
- mercado VARCHAR (clave PK, FK)
- nombre_valor VARCHAR (PK, FK)
- precio FLOAT

Valores
- nombre_valor VARCHAR (PK, FK)
- mercado VARCHAR (clave PK, FK)

Obviamente, cualquiera de las tres tablas puede extenderse en atributos, o bien descomponerse en más tablas, de acuerdo a la estructura de datos que se requiera. Lo que has puesto es un ejemplo muy simplificado.
La última tabla no es estrictamente necesaria, pero si conveniente para algunas operaciones.
Muchas gracias gnzsoloyo.

Una anotación, la segunda y cuarta tabla se llaman iguales, imagino que tendrán que llamarse de manera diferente
  #10 (permalink)  
Antiguo 30/09/2009, 04:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda cómo guardar evolucion de valores...

Yep. Tienes razón. Se me pasó sin querer.

Saludos y suerte con el trabajo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:04.