我可以组合INSERT,JOIN和ON DUPLICATE KEY UPDATE

时间:2013-03-12 00:05:07

标签: mysql join on-duplicate-key

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

inventory_transactions存储库存变动,quantity_offset值为负值或正值。他们还有一个inventory_transaction_id

shipments商店货件,其中inventory_transactions组为shipment_id

inventory_transactionsshipments之间的关系位于名为shipment_inventory_transactions

的表格中

我希望能够做的是增加与给定quantity_offset相关联的inventory_transaction的{​​{1}}(增加货件中给定广告资源的数量) )如果货物中已存在该物品。

如果该项目不存在,请在shipmentinventory_transactions

中创建所需的行

我认为shipment_inventory_transactionsJOIN的某种组合可以做到这一点,但我无法绕过它。

为了简化这种情况,我正在考虑删除ON DUPLICATE KEY UPDATE表,因为货运和inventory_transactions之间的关系现在将是1比1。这里唯一的问题是每个inventory_transaction都可以与货件或收据相关联,但不能同时与两者相关联。将它们存储在同一列中听起来很笨拙。但是我不喜欢在每一行都有一个额外的列,因为只使用其中一个。

哇...脑转储完成。如果这是有道理的,你可以提供一个我没有得到的合理答案,我会非常感激。

1 个答案:

答案 0 :(得分:0)

最终,我发现简化数据库以消除多对多关系让我通过简单的插入实现我想要的。在这一点上更好地简化,而不是增加随着应用程序的增长而变得有问题的复杂性。