DataModel para entregas parciais em quantidades de produto

Considere o seguinte modelo de dados. Com este modelo, parece-me que só poderíamos fazer entregas parciais com toda a quantidade encomendada para um produto.

o que devemos mudar para permitir a entrega parcial das quantidades do produto?

por exemplo, diga uma ordem que contenha 50 unidades do produto a e 50 unidades do produto B .

uma primeira entrega parcial poderia enviar ao cliente 25 unidades de produto A e 25 unidades do produto B .

Uma segunda entrega parcial poderia enviar para o cliente 25 unidades do produto A, e, finalmente, uma última entrega 25 unidades do produto B.

enter image description here

Nota: clique aqui para obter o modelo de dados de exemplo

Author: Sébastien, 2016-05-12

1 answers

Ele Se encaixa no modelo, temos uma a muitas relações entre orders e shipments tabelas. Então, costuras envio parcial é conceptualmente possível.

Terá de adicionar o campo item-quantity às tabelas shipment-items e return-items, mostrando quantos itens por produto estão preenchidos.

a integridade dos dados também deve ser considerada.
Se um produto é único por ordem, quero dizer se você tem uma restrição única de {product_id, order_id} dentro da tabela order-items, então:

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

Tem de ser verificado. dentro da sua lógica de aplicação quando um envio é criado.

sugestão: a restrição acima mostra todos os itens enviados de um produto de uma ordem menos todos os itens de retorno do produto da ordem, precisa ser menor do que a quantidade ordenada.

 0
Author: Mohsen Heydari, 2016-05-16 10:30:21