Poiché tutti i rami identificano gli oggetti allo stesso modo per codice e nome, una singola tabella articoli che non si differenzia per i rami va bene.
Hai una relazione di tipo molti-a-molti qui con articoli e rami, quindi non ci sono limiti lì per quanto riguarda le combinazioni. Sarebbe facile mettere un vincolo univoco su itemid & branchid dato che hai una chiave surrogata invece di una chiave naturale.
Sei abbastanza normalizzato qui. Non è necessario aggiornare i dati in più di un posto, a meno che le tue chiavi non cambino. Nessuna ragione per cui dovrebbe accadere. Puoi lanciare alcuni aggiornamenti a cascata ed eliminarli se lo ritieni opportuno.
Il campo quantità è discutibile. Come si aggiorna? Il sistema "fa i conti" per gli acquisti e le vendite? C'è qualcuno nel negozio che fa un conteggio inventario e aggiorna questo numero? Potresti aver bisogno di qualche funzione per ricalcolare, fare aggiustamenti se esce di sorpresa. Aiuta le prestazioni ad avere questo numero precalcolato, ma ci sono svantaggi.
Se questo è l'unico dato nel sistema per la quantità, il vero problema è che puoi solo dirmi quantificare l'oggetto dall'ultimo aggiornamento. Quanti ne avevo alla fine del mese scorso? Sono stati aggiunti articoli all'inventario che non sono mai stati venduti?
Discutere di questo con il proprietario del progetto o qualcuno che sa come farlo su carta per vedere cosa deve fare.