Estoy tratando de crear un básico Punto de venta y sistema de gestión de inventario.Punto de venta y esquema de base de datos de inventario
Algunas cosas a tener en cuenta:
- Los productos son siempre los mismos (el mismo ID) a través de todo el sistema, pero el inventario (unidades disponibles para la venta por producto) es único para cada ubicación. La ubicación Y y Z pueden tener unidades para la venta del producto X, pero si, por ejemplo, se venden dos unidades de la ubicación Y, el inventario de la ubicación Z no debería verse afectado. Sus unidades almacenadas están todavía intactas.
- Vender una (1) unidad de producto X de la ubicación Y, significa que el inventario de la ubicación Y debe restar una unidad de su inventario.
partir de eso, pensé en estas tablas:
lugares
- Identificación
- nombre
productos
- Identificación
- nombre
transacciones
- Identificación
- Descripción
inventories_header
- Identificación del
- LOCATION_ID
- product_id
inventories_detail
- inventories_id
- TRANSACTION_ID
- unit_cost
- UNIT_PRICE
- cantidad
orders_header
- Identificación del
- fecha
- total (calculado a partir de la cantidad orders_detail * precio; sólo para la validación de datos futuros)
orders_detail
- ORDER_ID
- transaction_id
- product_id
- cantidad
- precio
Bien, entonces, ¿hay alguna pregunta? Por supuesto.
- ¿Cómo realizo un seguimiento de los cambios en el costo por unidad? Si algún día empiezo a pagar más por un determinado producto, tendría que hacer un seguimiento de la utilidad marginal (
(cost*quantity) - (price*quantity) = marginal utility
) de alguna manera. Pensé en inventories_detail principalmente para esto. No me hubiera importado lo contrario. - ¿Están bien establecidas las relaciones? Aún 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 tenía que separar la tabla de inventario para estar al día con las actualizaciones de costos, supongo que tendría que sumar todas las cantidades indicadas en inventory_detail.
- Cualquier sugerencia ¿quieres compartir?
Estoy seguro de que todavía tengo algunas preguntas, pero estas son principalmente las que necesito abordar. Además, dado que estoy usando Ruby on Rails por primera vez, en realidad, como experiencia de aprendizaje, es una pena que me detengan en el diseño, sin permitirme acelerar la implementación más rápido, pero supongo que así es como debería ser.
Gracias de antemano.
bien hecho bro es una buena pregunta –