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 identidadnombre

productos

carné de identidadnombre

actas

carné de identidaddescripción

inventories_header

carné de identidadlocation_ididentificación de producto

inventarios_detalles

inventarios_idID de transacciónunit_costprecio unitariocantidad

orders_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 productocantidadprecio

Bien, 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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta