2013-03-12 2 views
0

Вот моя структуру базы данных, как она стоит сегодня ... движенийМогу ли я комбинировать ВСТАВИТЬ, JOIN и дублирование KEY UPDATE

inventory_transactions магазина инвентаря с quantity_offset значения, либо отрицательные или positivie. Они также имеют inventory_transaction_id

shipments магазин пересылок, которые являются группами inventory_transactions с shipment_id

Отношения между inventory_transactions и shipments находится в таблице под названием shipment_inventory_transactions

То, что я хотел бы быть в состоянии сделать приращение quantity_offsetinventory_transaction, связанное с данным shipment (увеличение количества данного предмета инвентаря в пределах отгрузки), если этот элемент уже существует в отгрузке.

Если элемент не существует, создать необходимые строки в inventory_transactions и shipment_inventory_transactions

Я думаю, что некоторые комбинации JOIN и ON DUPLICATE KEY UPDATE может это сделать, но я не могу обернуть мою голову вокруг него.

Чтобы упростить ситуацию, я рассматриваю возможность удаления таблицы shipment_inventory_transactions, потому что отношения между отправлениями и inventory_transactions теперь будут 1 к 1. Единственное, что у нас получилось, это то, что каждый инвентарь_транзакции может быть связан с отгрузкой или квитанцией, но не с обоими. Хранение их обоих в одной колонке звучит скучно. Но мне не нравится иметь дополнительный столбец в каждой строке, так как будет использоваться только один или другой.

Wooh ... Brain dump полный. Если бы это имело смысл, и вы могли бы дать разумный ответ, который ускользал от меня, я был бы очень благодарен.

ответ

0

В конечном счете, я нашел упрощение базы данных, чтобы устранить отношения «многие-ко-многим», позволил мне выполнить то, что я хотел, с простой вставкой. Лучше упростить на данный момент, чем добавить большую сложность, которая станет проблематичной по мере роста приложения.

Смежные вопросы