0

这是我今天的数据库结构......

inventory_transactionsquantity_offset存储具有负值或正值的库存变动。他们还有一个inventory_transaction_id

shipments存储装运,它们是inventory_transactions一组shipment_id

inventory_transactions和之间的关系shipments在一个名为的表中shipment_inventory_transactions

我希望能够做的是增加与给定相关联quantity_offset的 an (增加货件中给定库存项目的数量),如果该项目已经存在于货件中。inventory_transactionshipment

如果该项目不存在,请在inventory_transactions和中创建所需的行shipment_inventory_transactions

JOIN我认为and的某种组合ON DUPLICATE KEY UPDATE可以做到这一点,但我无法理解它。

为了简化情况,我正在考虑删除该shipment_inventory_transactions表,因为 shipping 和 inventory_transactions 之间的关系现在将是 1 对 1。这里唯一的问题是每个inventory_transaction 可以与发货或收据相关联,但不能同时与两者相关联。将它们存储在同一列中听起来很恶心。但是我不喜欢在每一行中都有一个额外的列,因为只会使用一个或另一个。

哇... 大脑转储完成。如果这是有道理的,并且您可以提供一个让我无法理解的明智答案,我将不胜感激。

4

1 回答 1

0

最终,我发现简化数据库以消除多对多关系让我可以通过简单的插入来完成我想要的。此时最好进行简化,而不是添加随着应用程序增长而成为问题的巨大复杂性。

于 2013-03-12T22:08:33.473 回答