库存数据库:合并永续和定期库存系统

时间:2015-05-22 08:56:57

标签: mysql vb.net database-design

我的客户要求我创建一个库存系统,当然可以每天,每周,每月和每年打印报告。

到目前为止,通过这个描述,我能够完成系统,输出将是这样的:

-------------------------------
|id|cost|price|quantity|profit|
-------------------------------
|1 | 10 | 12  |  100   | 200  |
-------------------------------

然后我的客户希望通过添加已售出的商品和剩余商品来获得开始和结束数量,这应该不是问题。但我的客户希望能够重新打印过去的数据,让我们在5天前说出来。

我的数据库设计是这样的:

tbl_items
------------------------------------------------    
|item_code|item_name|item_cost|item_price|stock|
------------------------------------------------

tbl_sold
-----------------------------------------------------------
|id|item_code|item_cost|item_price|quantity_sold|date_sold|
-----------------------------------------------------------

如何改进数据库设计以满足客户需求? 如何输出如下:

------------------------------------------------
|id|beginning|cost|price|quantity|ending|profit|
------------------------------------------------

1 个答案:

答案 0 :(得分:0)

首先,您可以设置一个名为tbl_item_transactions的新表(或用此替换tbl_sold)。 tbl_item_transactions很可能包含以下字段:

  • ID
  • ITEM_CODE
  • ITEM_COST
  • ITEM_PRICE
  • transaction_type(如果是销售,交付,处置或任何其他库存移动)
  • transaction_quantity
  • transaction_amount(取决于交易类型,可以是item_price *交易数量,item_cost *交易数量或交易数量*计算的平均成本,或者可能是零交易量)
  • TRANSACTION_DATE

通过这种方式,您可以考虑所有库存变动,包括其影响。然后,您可以根据交易日期和项目代码(或报告要求所需的任何内容)进行查询。