0

今日の私のデータベース構造は次のとおりです...

inventory_transactionsquantity_offsetマイナスまたはプラスのいずれかの値を持つ在庫の移動を保管します。また、inventory_transaction_id

shipmentsのグループである店舗inventory_transactions出荷shipment_id

inventory_transactionsとの関係shipmentsは、shipment_inventory_transactions

私ができるようにしたいのはquantity_offset、そのアイテムがすでに出荷に存在する場合、特定の在庫アイテムの数量を増やすことですinventory_transactionshipment

アイテムが存在しない場合は、必要な行を作成しinventory_transactionsますshipment_inventory_transactions

と の組み合わせでこれができると思いますJOINON DUPLICATE KEY UPDATE、頭を包むことはできません。

状況を単純化するために、このshipment_inventory_transactionsテーブルを削除することを検討しています。これは、shippings と inventory_transactions の関係が 1 対 1 になるためです。ここでの唯一の問題は、各 inventory_transaction を出荷または受領のいずれかに関連付けることができますが、両方には関連付けることができないことです。両方を同じ列に格納するのは不自然に聞こえます。しかし、どちらか一方しか使用されないため、すべての行に余分な列を配置するのは好きではありません。

うーん…ブレインダンプ完了。これが理にかなっていて、私を逃した賢明な答えを提供できるなら、私は最も感謝しています.

4

1 に答える 1

0

最終的に、データベースを単純化して多対多の関係をなくすことで、単純な挿入で目的を達成できることがわかりました。アプリケーションが成長するにつれて問題になる複雑さを大幅に追加するよりも、この時点で単純化することをお勧めします。

于 2013-03-12T22:08:33.473 に答える