Principales respuestas
Control de stock

Pregunta
-
Respuestas
-
Sugerencia: mantén la base de datos normalizada, lo cual implica NO usar una tabla de Stock.
En su lugar, lo que se hace es aplicar un "Select SUM(...)" sobre la tabla de movimientos de almacén que probablemente ya tienes en tu programa. Esa tabla registra todos los movimientos de entrada y salida del almacén (con signo distinto o con un campo que los distinga), por lo que si en un momento dado calculas la suma de todas las entradas menos todas las salidas, eso te arroja el Stock. Y tiene la ventaja (en comparación con una tabla independiente para el Stock) de que no tienes que ir actualizando el Stock cada vez que se prduce una entrada o salida, por lo que no cabe el riesgo de que se produzca una inconsistencia entre las entrads/salidas y el stock.
Para facilitar el manejo desde el código cliente, puedes crear en la base de datos una Vista cuyo contenido sea del estilo de "select articulo, sum(cantidad) as stock from Movimientos group by articulo". Desde el código cliente, se comportaás como si fuera una tabla de stock, pero sin que el stock se almacene por separado. Normalmente el rendimiento será suficientemente bueno, ya que los servidores de base de datos implementan estas operaciones con mucha eficiencia, pero si en la práctica se volviese lento en caso de manejar muchos millones de movimientos, la solución es indexar la vista.
- Propuesto como respuesta Juan MondragónModerator jueves, 8 de marzo de 2018 16:02
- Marcado como respuesta Juan MondragónModerator martes, 13 de marzo de 2018 15:48
Todas las respuestas
-
Sugerencia: mantén la base de datos normalizada, lo cual implica NO usar una tabla de Stock.
En su lugar, lo que se hace es aplicar un "Select SUM(...)" sobre la tabla de movimientos de almacén que probablemente ya tienes en tu programa. Esa tabla registra todos los movimientos de entrada y salida del almacén (con signo distinto o con un campo que los distinga), por lo que si en un momento dado calculas la suma de todas las entradas menos todas las salidas, eso te arroja el Stock. Y tiene la ventaja (en comparación con una tabla independiente para el Stock) de que no tienes que ir actualizando el Stock cada vez que se prduce una entrada o salida, por lo que no cabe el riesgo de que se produzca una inconsistencia entre las entrads/salidas y el stock.
Para facilitar el manejo desde el código cliente, puedes crear en la base de datos una Vista cuyo contenido sea del estilo de "select articulo, sum(cantidad) as stock from Movimientos group by articulo". Desde el código cliente, se comportaás como si fuera una tabla de stock, pero sin que el stock se almacene por separado. Normalmente el rendimiento será suficientemente bueno, ya que los servidores de base de datos implementan estas operaciones con mucha eficiencia, pero si en la práctica se volviese lento en caso de manejar muchos millones de movimientos, la solución es indexar la vista.
- Propuesto como respuesta Juan MondragónModerator jueves, 8 de marzo de 2018 16:02
- Marcado como respuesta Juan MondragónModerator martes, 13 de marzo de 2018 15:48
-
hola
>>pero no se como codificar el manejo de stock
pero utilizas alguna base de datos, porque podrias mencionar cual?
conoces sobre ado.net? o usas entity framework?
tienes disenada una tabla de productos/articulos ? porque en principio el stock seria un campo en esa tabla, indicando la cantidad existente de item tienes de ese articulo
entonces para descontar usas
UPDATE productos SET cantidad = cantidad - @cantidad WHERE productoId = @productoId
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator jueves, 8 de marzo de 2018 23:51
-
-
-