Esquema de punto de venta y base de datos de inventario
Estoy tratando de crear unBASIC Sistema de gestión de puntos de venta e inventario.
Algunas cosas a tener en cuenta:
Los productos son siempre los mismos (la misma ID) en todo el sistema, pero el inventario (unidades disponibles para la venta por producto) es único por ubicación. Tanto la ubicación Y como la Z pueden tener unidades de venta del producto X, pero si, por ejemplo, dos unidades se venden desde la ubicación Y, el inventario de la ubicación Z no debería verse afectado.Sus Las unidades almacenadas siguen intactas.Vender una (1) unidad de producto X desde la ubicación Y, significa que el inventario de la ubicación Y debe restar una unidad de su inventario.A partir de eso, pensé en estas tablas:
localizaciones
carné de identidadnombreproductos
carné de identidadnombreactas
carné de identidaddescripcióninventories_header
carné de identidadlocation_ididentificación de productoinventarios_detalles
inventarios_idID de transacciónunit_costprecio unitariocantidadorders_header
carné de identidadfechatotal (calculado a partir del precio de la cantidad * de orders_detail; solo para la validación de datos futuros)orders_detail
Solicitar IDID de transacciónidentificación de productocantidadprecioBien, entonces, ¿hay alguna pregunta? Por supuesto.
¿Cómo hago un seguimiento de los cambios en el costo de las unidades? Si algún día empiezo a pagar más por un determinado producto, necesitaría hacer un seguimiento de la utilidad marginal ((cost*quantity) - (price*quantity) = marginal utility
) de alguna manera. Pensé en inventarios_detail principalmente para esto. No me habría importado de otra manera.¿Las relaciones están bien establecidas? Todavía me cuesta pensar si las ubicaciones tienen inventarios, o si los inventarios tienen varias ubicaciones. Es enloquecedor¿Cómo mantendría / conocería sus niveles de stock actuales? Como tuve que separar la tabla de inventario para mantenerme actualizado con las actualizaciones de costos, supongo que solo tendría que sumar todas las cantidades indicadas en inventarios_detalles.¿Alguna sugerencia quieres compartir?Estoy seguro de que todavía tengo algunas preguntas, pero estas son principalmente las que debo abordar. Además, ya que estoy usando Ruby on Rails por primera vez, en realidad, como experiencia de aprendizaje, es una pena detenerme en el diseño, no dejándome avanzar más rápido en la implementación, pero creo que así es como debería ser.
Gracias por adelantado.