2 votos

Estructura de la base de datos de pedidos

Actualmente estoy guardando una instantánea de menos de 1 segundo de un libro de órdenes en mi base de datos SQL. Sin embargo, tengo bastantes problemas para entender la arquitectura de esta base de datos

Lo que estoy haciendo actualmente es guardar una tabla con los datos y nombrar la tabla como la época actual. Como puedes ver esta es una forma horrible de hacerlo.

¿Qué recomendaríais hacer para que esto sea más eficiente y menos sucio?

Los datos que estoy almacenando actualmente son sólo: tiempo, tamaño, precio Gracias de antemano, sois increíbles.

2voto

dotnetcoder Puntos 1262

¿Has pensado en almacenarlo añadiendo los campos adicionales ("nivel" o "profundidad") y ("tipo"), entonces puedes tener una tabla con este aspecto;

time    size    price    depth    type
xxx     100     100.03   1        bid
xxx     2000    100.025  2        bid
xxx     0       100.02   3        bid
xxx     33      100.035  1        offer
xxx     45      100.04   2        offer
xxx     550     100.045  3        offer

Además, puede incluso comparar el siguiente timesnap con el anterior y sólo crear una nueva entrada si los datos cambian. Cuanto menor sea la diferencia de tiempo, mayor será la eficiencia del almacenamiento de datos. Por ejemplo, suponga que en el siguiente paso de tiempo sólo hay dos cambios; una nueva oferta de nivel 3 y que la oferta se ha reducido en el nivel 1 debido a la negociación o de otro modo, entonces sólo creará 2 filas;

xxx+1    250    100.02   3      bid
xxx+1    23     100.035  1      offer

Siempre se puede indexar la tabla para una determinada marca de tiempo con un simple SQL;

SELECT TOP 1 * 
    FROM table 
    WHERE type='bid' AND level=1 AND time <= xxx+1
    ORDER BY time DESC

0 votos

En primer lugar, muchas gracias por la respuesta de HQ Quizás sea una pregunta tonta, pero ¿esto no provocaría que fuera muy lento al intentar leer los datos de X-Y?

1 votos

En realidad, en lugar de "bid" y "offer" utilice "b" y "o" o TRUE y FALSE para ahorrar memoria y posiblemente hacer la búsqueda más eficiente

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X