设计库存控制数据库

时间:2015-11-13 17:25:59

标签: database database-design

我的数据库设计存在一些问题。我设计了我的系统,如下图所示 enter image description here

正如你所看到的,它是一个非常基本的系统。用户可以通过添加供应商详细信息来创建供应商。然后,用户可以添加产品并将其链接到供应商。这是非常直接的位(我希望!)。现在我将附上我的数据库设计,希望能够涵盖我所提到的内容。 enter image description here

因此,供应商可以拥有一个联系人(我的系统用户将与供应商公司联系),供应商可以拥有一个或多个产品。

他是我无法弄清楚的部分。我的系统用户每周两次将从其所有供应商处获得库存。当他们收到这个库存时,他们应该进入应用程序内的更新库存屏幕并输入他们收到的某个产品的库存量。我已经添加了一个products_stock表,希望能够让我继续介绍这个方面(我认为它虽然缺少很多)。

然而,最后一个屏幕是预测库存的显示。让我们说,例如在我的产品交付当天,我收到10个产品一个单位。然后,我将手动计算我从产品一的最后一个订单(例如2)中剩余的单位数,并将产品一的库存计数更新为12。 这意味着,实际上,我在产品一的两次交货之间只需要8个单位。预测的库存屏幕应该显示我应该为特定产品在指定时间段内下订单的预测库存水平。因此,如果8个单位是每周产品销售的平均库存,如果我想看一个月我应该订购多少单位产品,它应该显示大约32个单位。

这不应该是一个复杂的系统,它应该有这个手动方面。我已经设计了数据库直到某一点,我希望我能得到关于products_stock表的一些建议以及如何处理特定时间段的库存预测(如果我可能需要额外的表)。

任何建议表示赞赏。

谢谢

2 个答案:

答案 0 :(得分:4)

库存更像是一个视图,而不是一个表。库存实际上是位置之间的一系列货物移动,以及定期计数/调整。

库存很复杂。您应该使用一些库存软件并阅读一些数据建模书籍。

使用位置(真实和虚拟)和移动(移动应该是它自己的实体)的概念。

项目砸了?将其从库存位置移至"损坏的"位置

物品丢失了吗?将它从库存移到" ether"位置

发现一个随机物品?将它从"以太"移出库存

出售物品?将其从库存移至"已销售"

买了一个物品?将其从购买转移到库存

要记住的其他一些事项:

  • 你可以卖东西,它会被退回,然后你把它放回去 库存
  • 你可以买东西,但它不对,所以你发送它 回到卖家
  • 你可以卖掉你不拥有的东西(上 寄售,或不在库存中)
  • 你可能有些东西 目前尚未出售的库存。

我不会进入库存的会计方面:)

答案 1 :(得分:2)

一种可能的方法:

为收到的每个单元提供单独的“库存项目”记录。出售时,请在此记录中记录销售日期。

然后,如果您想知道在给定时间范围内售出的商品数量,只需计算该范围内销售日期的记录,例如从stock_item中选择count(*),其中product_id = @ product和sold_date介于@from和之间@thru。如果你需要跟踪因腐败,盗窃等而丢失的物品,那么你可能会有某种状态标志,表明它是否有库存,销售,销毁,无论是什么,以及该状态的日期。

如果通过的单位数量很大,并且没有其他理由保留个别股票记录,您可以改为使用“每日销售”记录,并在当天销售日期和数字。同样的想法。