2016-05-11 13 views
1

Рассмотрим следующую модель данных. С этой моделью мне кажется, что мы можем производить только частичные поставки со всем количеством заказанного продукта.DataModel для частичных поставок по количеству продуктов

Что мы должны изменить, чтобы обеспечить частичную доставку количества продукта?

Например, скажем, заказ, содержащий 50 единиц продукта А и50 единиц продукции B.

Первая частичная поставка может поставляться заказчику 25 единиц продукта А и25 единиц продукции B.

Вторая частичная поставка может поставляться заказчику 25 единиц продукта А, и, наконец, последняя доставка 25 единиц продукции B.

enter image description here

Примечание: click here получить модель

+0

Таблица отправлений, как и многие другие, имеет «other_details». Диаграмма не предназначена для отображения исчерпывающего списка всех возможных столбцов. Ответ Мохсена дает вам колонку, в которой вы нуждаетесь, но может быть много других, таких как shipper_id, delivery_instructions, что угодно. – NaturalData

ответ

0

примера данных швов в модели, у нас есть один ко многим отношения между orders и shipments таблицами. Таким образом, паразитная упаковка является концептуально возможной.

Необходимо добавить item-quantity к shipment-items и return-items таблицам, отображающим, сколько товаров на продукт выполнено.

Необходимо учитывать целостность данных.
Если продукт уникален в порядке, я имею в виду, если у вас есть ограничение уникальности {product_id, order_id} внутри order-items таблицы, а затем:

SUM (shipment-items.item-quantity) grouped by order_item_id 
- 
SUM (return-items.item-quantity) grouped by order_item_id 
<= 
order_items.order-item-quantity 
Where order_items.order_item_id = shipment-items.order_item_id 

нужно проверить внутри логики приложения при создании отгрузки.

Подсказка: выше ограничение показывает все отправленные элементы произведения порядка минус всех пункты возврата продукта заказа, должно быть меньше, чем заказанное количество.