Não conheço bem o código postal dos EUA e o sistema de divisão territorial, mas presumo que seja um pouco parecido com o alemão.
- Um estado tem muitos condados.
- Um condado tem muitas cidades.
- Uma cidade tem muitos códigos postais.
Portanto, eu usaria o seguinte esquema.
ZipCodes CityZipCodes
------------ ---------------- Cities
ZipCode (PK) <─── ZipCode (PK)(FK) -----------
City (PK)(FK) ───> CityId (PK)
Name
County (FK) ───┐
│
│
Counties │
------------- │
States CountyId (PK) <───┘
----------------- Name
StateId (PK) <─── State (FK)
Name
Abbreviation
Corrigido para várias cidades por CEP.