se un ordine viene cancellato ovviamente viene tolto anche il record dal magazzino avente quello stesso codiceOrdine. Senza contare che pure non forzassi questo comportamento nel momento in cui nella query vado a fare il LEFT JOIN non trova nulla quindi di conseguenza pure lasciassi la referenza dello scarico in magazzino non riscontrerei nulla di anomalo.
Cmq in definitiva mi consigli di fare tabelle distinte? Quindi avrei:
tabella carico
tabella scarico (a sua volta utilizzata sia per gli ordini normali -aventi quindi un codice e un idAcquirente- che per operazioni generiche, ad esempio, un articolo è stato venduto al dettaglio per cui devo semplicemente "annotarlo" nel DB senza dettagli aggiuntivi).