detto cosi' senza troppo considerare i valori (non conosco i dati) si potrebbe fare:

tab_articoli
tab_colori
tab_taglie_misure
tab_giacenze

in tab_giacenze troverebbero posto:

id_giacenza
id_articolo
id_taglia_misura
id_colore

cosi' sarebbero evitati completamente i dati duplicati. Per i dati mancanti nel codice a barre potresti richiamare, alla selezione del codice, i record di tab_giacenza corrispondenti all'articolo raggruppati in un SELECT in modo che l'operatore possa gestire taglia/colore e verificare nel contempo la disponibilita' residua.

Tenendo presente che se hai il codice a barre si suppone tu abbia in mano anche il capo interessato e quindi non ci sarebbe il problema di verificarne la disponibilita', ma questa verifica invece potrebbe essere necessaria per valutare la disponibilita' di altre taglie/colori del medesimo articolo.