日期:2014-05-20  浏览次数:20946 次

仓库先进先出问题
有物料表
2007-01-01
物料编号                   库存数
ID                               Qty
1                                 5

出库表                   物料编号                   数量               出库时间
CID                         ID                               CQty               CTime
001                         1                                 3                     2007-01-02

操作以后
物料表
时间2007-01-03
物料编号                   库存数
ID                               Qty
1                                 2

然后入库
入库表     物料编号                   数量               入库时间
RID           ID                               RQty               RTime
001           1                                 3                     2007-01-03

问题是,当操作以后
修改出库表001时
如何保证出库数量不能大于5?

------解决方案--------------------
TO:问题是,当操作以后
修改出库表001时
如何保证出库数量不能大于5?

先得到库存数量,然后再根据这个数量进行判断不行吗??

还是我没有理解楼主的意思?
------解决方案--------------------
1.通过判断来保证出库数量

其实我感觉你的问题是在问,你分几笔存,然后不知道能取多少

2个思路
一是对ID的物料进行累加
不过这个办法对于小型的是没问题的
但无疑多了很多计算

推荐的做法是通过一个表专门簿记仓库内货物的数量,以此为标准进行出库
你可以把你上面两张表看成是仓库日志


如果你想问的是并发的话,那么使用事务来解决问题
------解决方案--------------------
使用事务回滚就成了
------解决方案--------------------
你是说出库表出库数量填错了吗,修改出库表数从3改为5,如果是当时发现就改就像正常出库一样算,如果是隔了一段时间修改,如果库存数量> =(5-3)时是不用有什么问题的,你只虽要再出库5-3,并按现在库存最老价格算(先进先出),如果你现库存 <(5-3)那么要么你们的安全库存有问题,要么你们仓管出现重大失职,只有先入库才修改出库
所以修改出库表时,你就采取先还原出库表中的数量到库存(包括当时的价格),然后再重新出库(按正常的先进先出进行即可),库存数量够不够这么正常出库情况一样外理,如果你不想删除,那就在这张出库表里再出库(5-3),或是返还X