Zazwyczaj w przypadku systemu zamówień spodziewałbym się czegoś takiego
Product -< OrderLine >- Order
W twoim przypadku możesz dodać relację „ucho królika” na swoim Produkcie, aby odnosić się do siebie. Więc Twoje outbound_shipment_contents traci name , type do nowego product . Następnie możesz rekursywnie budować drzewo elementów do wyboru zgodnie z wymaganiami.