库存管理数据库

时间:2012-08-20 07:04:45

标签: mysql database database-design stock

我正在开发库存管理应用程序以下是方案:

- 用户使用以下信息输入购买的商品(商品的ID,购买的数量,购买价格,风的最低价格,购买日期)

每次操作,用户输入出售的物品,其中包含以下信息(物品的ID,销售数量,风的最终价格,交易日期)以及每次操作我已提醒用户最终价格风低于最低风价

每次操作,风都记录了交易的好处(最终价格风 - 购买价格)

问题是:您可以在不同的时间以不同的价格购买同一产品,然后我们就可以计算出共同利益,

例如,如果我有以下情况

购买的商品(T恤),10件,20英镑,23英镑,10/08/2012购买商品(T恤),10件,22英镑,25英镑,19/08/2012

在这种情况下,我需要做什么才能以正确的购买价格回收物品并计算利润并在销售表中记录好的信息?

1 个答案:

答案 0 :(得分:6)

在财务方面,利用FIFO规则计算利润/损失总是(很大程度上)。

那就是:20美元买入10美元,买入5美元买入22美元,买入5美元买入21美元,卖出10美元@ 23,必须记录为

BUY 10 for $20 date1
BUY 5 for $21 date3

并单独

SELL 5 @ $22 date2
SELL 10 @ $23 date4

现在您需要做的是根据FIFO规则对这些进行配对,并将中间投资组合写入数据库:

portfolios AFTER date
date1  10  profit/loss $0     avg-open $20
date2  5   profit/loss +$10   avg-open $20
date3  10  protit/loss +$10   avg-open $20.50
date4  0   profit/loss +$35   avg-open $0

操作一个接一个:date1我们以20美元的平均开放价格购买。从date1date2,我们卖出了一半的股票,在交易之后赚取了5 * ($22 - $20 <- avg-open) = $10的利润,还有5个证券还剩下平均开盘价$ 20

date2date3我们库存了5个证券,损益保持不变,但平均开盘价上涨到20.50美元(20美元5个,21美元5个)。

然后最后,你卖掉它们所有的利润率为10 * ($23 - $20.50) = $25加上之前的10美元,这给你35美元。

总结一下,您可以记录单笔交易(BUY / SELL),然后计算投资组合,平均开盘价和即时盈利/亏损。

或者您可以存储投资组合以及到目前为止的盈利/亏损以及逐步更新的平均开放价格。

我不建议同时执行这两项操作(除了调试目的),因为这可能会使您在数据级别出现不一致,这很糟糕。如果你这样做,选择其中一个表示为主,并(重新)计算另一个表示不一致的情况。

只是一个建议。