mysql - 库存数据库 : Merging Perpetual and Periodic inventory system

标签 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|
------------------------------------------------

最佳答案

首先,您可以设置一个名为 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/

相关文章:

mysql - 数据库 - 多列索引

php - CakePHP 中的 MySQL 表字段注释而不是名称

php - 我可以安全地使用带有 utf8 列的 utf8mb4 连接吗?

mysql - 基于可变数量的客户分割的数据库主键

asp.net - 将 Excel 文件从 ASP.NET 应用程序上传到 MySQL 时出错

vb.net - 如何在 VB.NET 中使用 <DllImport>?

sql - SQL 表操作设计时间

php - 如何将现有MySQL数据库的表复制到没有记录的新数据库?

mysql - 数据库:什么时候决定是否需要 `table relationship`?

vb.net - 使用 vb.net 通过 Amazon SES 发送电子邮件返回 "Received an unexpected EOF or 0 bytes from the transport stream"