【问题标题】:Another table for warehouse or any other standard用于仓库或任何其他标准的另一张桌子
【发布时间】:2013-03-07 08:23:54
【问题描述】:

下面给出了三种进出仓库的交易方式

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)

我认为可能是

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

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

【问题讨论】:

    标签: mysql sql database database-design inventory


    【解决方案1】:

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

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

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

    按日期、销售人员查询以前的各种列表(PL RS DA 列表)

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

    查询仓库有多少库存

    您最后提到了一个仓库表,其中包含您需要的数量值。

    交易

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

    您有一个交易头表、一个交易明细表和一个仓库表。

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

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

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

    上述所有步骤都成功发生,或者上述步骤都没有成功发生。这就是所谓的交易。这就是您提交(或回滚)数据库更改的原因。

    交易的同步是保持您的库存数量正确的原因。想象一下,如果将交易明细行写入数据库,但仓库数量没有更新,在真实仓库中会发生什么。

    是的,您必须完成上述所有步骤。没有捷径。

    【讨论】:

    • 我认为时间戳是必要的,因为用户还想按日期查看列表。
    • 先生,关于仓库表的答案尚不清楚,我想要一种机制,通过该机制,仓库表可以更新数量。这将如何实现是我们从 transaction_detail 表中获取值并检查这是否是退货单然后它意味着仓库中的进货,我们首先进行查询以获取带有数量的 sku 值,然后对其进行添加,然后插入新值这张表中的意思是仓库……?如何更新仓库.......?
    • @Waleed Ehsan:正如你所描述的,这就是为什么我没有在回答中提到它。您将使用一种编程语言在一个事务中执行多个 SQL 语句。 SQL UPDATE 更新表中的一个或多个列。
    • @Gilbert Le Balanc 先生,您的意思是我们首先做了一个语句,从仓库获取 sku 数量并将其存储在变量中,然后从交易明细表中存储另一个,然后使用存储的变量添加/减去,然后插入结果到仓库表中。
    猜你喜欢
    • 2014-01-24
    • 2017-03-20
    • 2011-10-09
    • 2020-07-29
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多