仓库或任何其他标准的另一个表

时间:2013-03-07 08:23:54

标签: mysql sql database database-design inventory

有三种交易,通过这种交易,仓库进出仓库

1选择列表 2回报清单 3-DA列表

DA列表包含库存管理员从经销商处购买的数量(库存)
选择清单是他给不同销售人员销售的库存(库存) 退货清单是销售人员未销售的库存,并将其退还给库存管理员(库存)

股票管理者希望这些查询必须启用

1 - 可以按销售人员的日期查看以前所有种类的列表(PL RL DA列表) 2 - 仓库中有多少库存

表格在那里

sku(id, name, type, category)
batch(sku_id, batch, price , date)
salesman(id, name)
transaction_type(type_id, transaction_name)
transaction_header(list_id , salesman_id, route )
transaction_detail(list_id, sku_id , Qty)

list id主键包含像da-34244 pl-453 rs-3432这样的前缀,它基于它识别哪种类型的列表

所以问题是如何更新这个仓库表

warehouse(sku_id, qty , typeofsku)

我想的可能性可能是

当用户输入列表给他一个表格上的按钮你是这个是列表,当用户按下这个按钮时,首先在transaction_detail中输入详细信息并从该表中选择数量并根据列表类型从仓库中获取数量添加或减去然后更新仓库。

是否还有其他有效且好的方法,请提供详细信息。

1 个答案:

答案 0 :(得分:1)

首先,每个表都应该有一个盲主键或聚类键。盲密钥是与基础数据无关的密钥。盲密钥通常是自动递增的整数或长整数或其他一些唯一ID。

  

列表ID是一个主键,包含一个像da-34244 pl-453 rs-3432这样的前缀,用于标识它的列表类型。

您不应该在数据库列中拥有这样的组合字段。您应该将该字段分解为列表代码(da,pl,rs)和数字。在生成输出时组合字段,以便用户查看其熟悉的列表ID。我假设这些数字只是递增整数。将列表类型与数据库中的列表编号分开可以更容易地跟踪使用的数字。

  

按销售人员

按日期查询以前所有种类的列表(PL RS DA列表)

您不在任何表中存储时间戳,因此无法按日期查询。另外,您需要确定列表类型是在数据库中以大写还是小写形式存储。您已经使用了小写和大写的列表类型。

  

查询仓库中可用库存量

您最后提到的仓库表格中包含您需要的数量值。

<强>交易

编辑添加:有时,您必须执行多个SQL语句才能完成事务。

您有一个交易标题表,一个交易明细表和一个仓库表。

假设交易明细表来自退货清单,这意味着我们将库存数量添加回仓库表。

您的程序必须执行以下SQL步骤

  • 将信息插入到事务标题行中。
  • 对于返回列表中的每个sku:
    • 将信息插入交易明细行。
    • 选择具有相同sku_id的仓库行。
    • 将交易明细行中的数量添加到仓库行的数量。如果这是一个选择列表,您将从仓库行的数量中减去交易明细行的数量。
    • 更新仓库行的数量。
  • 提交数据库更改。

上述所有步骤均可成功执行,或上述步骤均未成功执行。这就是所谓的交易。这就是您将更改提交(或回滚)到数据库的原因。

交易同步可以使您的库存数量保持正确。想象一下,如果将事务详细信息行写入数据库,但实际仓库中会发生什么,但仓库数量未更新。

是的,你必须完成上面列出的所有步骤。没有捷径。