For et bestillingssystem ville jeg typisk forvente noget lignende
Product -< OrderLine >- Order
I dit tilfælde kan du tilføje en "bunny ear"-relation på dit produkt for at referere til sig selv. Så dit outbound_shipment_contents mister name , type til det nye product . Du kan derefter rekursivt opbygge træet af genstande til at vælge efter behov.