我的客户要求我创建一个库存系统,当然可以每天、每周、每月和每年打印报告。
到目前为止,通过这个描述,我能够完成该系统,并且输出将如下所示:
-------------------------------
|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|
------------------------------------------------
最佳答案
首先,您可以设置一个名为 tbl_item_transactions 的新表(或用此表替换 tbl_sold)。 tbl_item_transactions 最有可能包含以下字段:
- ID
- 商品代码
- item_cost
- 商品价格
- transaction_type(如果是销售、交付、处置或任何其他库存变动)
- transaction_quantity
- transaction_amount(根据交易类型,可以是 item_price * 交易数量、item_cost * 交易数量,或交易数量 * 计算的平均成本,也可能是零金额交易)
- 交易日期
通过这种方式,您可以考虑所有库存变动及其影响。然后,您可以根据交易日期和项目代码(或报告要求所需的任何内容)进行查询。
关于mysql - 库存数据库 : Merging Perpetual and Periodic inventory system,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392425/