我正在尝试创建一个基本的销售点和库存管理系统。

需要考虑的一些事项:


在整个系统中,产品始终是相同的(相同的ID),但是每个位置的库存(每个产品的可用销售单位)都是唯一的。位置Y和Z可能都具有产品X的销售单位,但是,例如,如果从位置Y出售了两个单位,则位置Z的库存不应受到影响。其库存单位仍然完好。
从位置Y出售一(1)单位产品X,这意味着位置Y的库存应从其库存中减去一单位。


由此,我想到了这些表:


地点


ID
名称

产品展示


ID
名称

交易


ID
描述

库存_标题


ID
location_id
product_id

库存_详细


inventories_id
transaction_id
单位成本
单价
数量

orders_header


ID
日期
总计(根据orders_detail数量*价格计算;仅用于将来的数据验证)

orders_detail


order_id
transaction_id
product_id
数量
价钱



好吧,有什么问题吗?当然。


如何跟踪单位成本的变化?如果有一天我开始为某种产品支付更多费用,则需要以某种方式跟踪边际效用((cost*quantity) - (price*quantity) = marginal utility)。我主要是出于此考虑inventories_detail。否则我不会在意的。
关系建立得很好吗?我仍然很难思考位置是否有库存,或者库存是否有多个位置。太疯狂了
您将如何保持/了解当前的库存水平?由于我必须分离库存表以跟上成本更新,我想我只需要把inventories_detail中所述的所有数量加起来即可。
您想分享什么建议吗?


我确定我仍然有一些问题,但是大多数都是我需要解决的问题。另外,由于我是第一次使用Ruby on Rails,因此作为一种学习经验,在设计时停下来实在是一种耻辱,这并不能让我更快地完成实现,但是我想应该是这样。

提前致谢。

最佳答案

这里最棘手的部分是,您实际上要做的不仅仅是POS解决方案。您还正在执行库存管理和基本成本会计系统。

您需要解决的第一种情况是用来确定所售商品成本的会计方法。最常见的选项是FIFO,LIFO或特定标识(所有可以搜索的术语)。

在所有3种情况下,您都应该在一个数据结构中记录您的商品购买(通常称为PurchaseOrder,但在这种情况下,我将其称为SourcingOrder以区别于原始问题中的订单表)。

下面的结构假定每个采购订单行将针对一个地点(否则情况会变得更加复杂)。换句话说,如果我为商店A购买2个小部件,为商店B购买2个小部件,则将向订单添加2行,每个数量为2,而不是数量为4的行。

SourcingOrder
 - order_number
 - order_date

SourcingOrderLine
 - product_id
 - unit_cost
 - quantity
 - location_id


库存可以是一个级别...

InventoryTransaction
 - product_id
 - quantity
 - sourcing_order_line_id
 - order_line_id
 - location_id
 - source_inventory_transaction_id


每次在商店收到SourcingOrderLine时,您都将创建一个InventoryTransaction,其数量为正数,并且FK引用sourcing_order_line_idproduct_idlocation_id

每次进行销售时,您都将创建一个数量为负的InventoryTransaction,并且FK引用order_line_idproduct_idlocation_idsource_inventory_transaction_id

source_inventory_transaction_id是从负数量InventoryTransaction到正数量InventoryTransaction的链接,该数量是使用您选择的任何一种会计方法计算的。

该位置的当前库存为SELECT sum(quantity) FROM inventory_transactions WHERE product_id = ? and location_id = ?GROUP BY product_id, location_id

边际成本将通过从销售追溯到2个相关库存交易记录到SourcingOrder行中来计算。

注意:您必须处理在两个库存交易中分配一个订单行的情况,因为订购的数量大于下一个要分配的库存交易中剩余的数量。该数据结构将处理此问题,但是您需要处理逻辑并自己查询。

关于ruby-on-rails - 销售点和库存数据库架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10037710/

10-14 06:01