A me sembra che l'utente ha esposto una situazione "base", se non altro per capire come funzionano le relazioni.
Si' e' una casistica abbastanza banale.
Pero' se si ammette la possibilita' che le entita' CAP COMUNE PROVINCIA non siano statiche tra loro, ma possono cambiare nel tempo, e' lo stesso modello E-R che impone di creare una tabella a parte perche' viene a cadere non mi ricordo quale condizione di normalizzazione (o comunque renderebbe obbligatorio aggiornare la tabella clienti quando cambia un comune, il che non e' una bella cosa).
Anche se e' un esempio di base per cominciare, meglio se quelli che vogliono imparare tengano presenti queste considerazioni che possono sembrare di margine (come ad esempio comuni accorparti, soppressi o spostati).
Nei casi reali trascurare queste condizioni di margine porta ad rendere il funzionamento di un software non ottimale.
Comunque ho visto trascurare questioni anche molto piu' rilevanti in sw abbastanza complessi che hanno comportato l'impossibilita' di gestire certe situazioni.
Per queste complicazioni si può sempre ovviare aggiungendo in tabella Comuni un campo DataAttribuzione. Se un Comune ha più attribuzioni storiche, una query può fare in modo di elencare solo i valori più recenti.
Si', e' la soluzione corretta e mi sembra che in alcune tabelle su internet sia riportata questa informazione.