Esta no es realmente una cuestión de "programación" (no es específica de ningún idioma o base de datos), sino más de diseño y arquitectura. También es una cuestión del tipo "Cuál es la mejor manera de hacer X". Espero que no cause mucha controversia "religiosa".Diseño de la base de datos de inventarios
En el pasado he desarrollado sistemas que de una forma u otra, mantienen algún tipo de inventario de artículos (no relevante qué artículos). Algunos utilizan lenguajes/bases de datos que no admiten transacciones. En esos casos, opté por no guardar el artículo cantidad a mano en un campo en el registro del artículo. En cambio, la cantidad disponible se calcula sumando el inventario recibido - total del inventario vendido. Esto ha resultado en casi ninguna discrepancia en el inventario debido al software. Las tablas están indexadas correctamente y el rendimiento es bueno. Existe un proceso de archivo en caso de que la cantidad de registro comience a afectar el rendimiento.
Ahora, hace unos años comencé a trabajar en esta empresa, y heredé un sistema que realiza un seguimiento del inventario. Pero la cantidad se guarda en un campo. Cuando se registra una entrada, la cantidad recibida se agrega al campo de cantidad para el artículo. Cuando se vende un artículo, se resta la cantidad. Esto ha resultado en discrepancias. En mi opinión, este no es el enfoque correcto, pero los programadores anteriores aquí lo juran.
Me gustaría saber si hay un consenso sobre cuál es la forma correcta de diseñar dicho sistema. También qué recursos están disponibles, impresos o en línea, para buscar orientación al respecto.
Gracias
Cuando dice "los programadores anteriores aquí lo juran", ¿quiere decir que juran cada vez que tienen que trabajar en ello? – MusiGenesis