Cita: pero no sé si se podría plantear de otra manera más práctica.
Depende bien de que es lo que hace falta, pero yo lo planteria en una sola tabla asi la base de datos puede hacer todo sola, y la aplicacion se hace mucho mas simple:
En algun lado debes registrar los ingresos de stock (las compras a proveedores) eso seran las tablas:
recepciones(id_recepcion, fecha, ...);
recepcion_producto(id_recepcion, id_producto, stock, ...)
Por otro lado registraras las ventas, esto serian las tablas:
ventass(id_venta, fecha, ...);
venta_producto(id_venta, id_producto, stock, ...)
Y finalemente la tabla productos:
productos(id_producto, nombre, stock_deposito, stock_tienda, ...)
Ahora bien, tu problema se puede resolver muy simple usando trigger sobre la estructura anterior:
* cada vez que se agrega un producto a la recepcion, se incrementa el stock_deposito de la tabla productos.
* cada vez que se hace una venta, se decrementa el stock_tienda de la tabla productos, luego se verifica si el stock_tienda alcanzo el minimo, si es asi, se pasa el stock de stock_deposito a stock_tienda.