Mysql 存货数据库:合并永续盘存制和定期盘存制

Mysql 存货数据库:合并永续盘存制和定期盘存制,mysql,vb.net,database-design,Mysql,Vb.net,Database Design,我的客户要求我创建一个库存系统,当然可以打印日报、周报、月报和年报 到目前为止,通过这个描述,我能够完成系统,输出如下: ------------------------------- |id|cost|price|quantity|profit| ------------------------------- |1 | 10 | 12 | 100 | 200 | ------------------------------- tbl_items ------------------

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

到目前为止,通过这个描述,我能够完成系统,输出如下:

-------------------------------
|id|cost|price|quantity|profit|
-------------------------------
|1 | 10 | 12  |  100   | 200  |
-------------------------------
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|
------------------------------------------------
然后我的客户想要有一个开始和结束的数量,这不应该是一个问题,只需添加已售出的商品和剩余的商品。但是我的客户希望能够重印过去的数据,比如说5天前的报告

我的数据库设计如下:

-------------------------------
|id|cost|price|quantity|profit|
-------------------------------
|1 | 10 | 12  |  100   | 200  |
-------------------------------
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|
------------------------------------------------
如何改进数据库设计以满足客户需求? 如何使输出如下所示:

-------------------------------
|id|cost|price|quantity|profit|
-------------------------------
|1 | 10 | 12  |  100   | 200  |
-------------------------------
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|
------------------------------------------------

首先,您可以设置一个名为tbl_item_transactions的新表,或者用这个表替换tbl_sell。tbl_项目_交易很可能包含以下字段:

身份证件 项目代码 项目成本 商品价格 交易类型(如果是销售、交付、处置或任何其他库存变动) 交易量 交易金额取决于交易类型,可以是项目价格*交易数量、项目成本*交易数量或交易数量*计算平均成本,也可以是零金额交易 交易日 这样,您可以考虑所有库存变动,包括其影响。然后,您可以根据交易日期和项目代码或报告要求的任何内容进行查询