This looks ok to me. Oracle user's might want to run the following to optimize:
create index us_counties_fips_county_ix on us_counties (fips_county_code, fips_state_code, name);
create index us_zipcodes_fips_state_ix on us_zipcodes (fips_state_code, fips_county_code, zipcode, name);
analyze table us_zipcodes compute statistics;
create index us_counties_state_abbrev_ix on us_counties (state_abbrev);
create index us_counties_fips_state_ix on us_counties (fips_state_code);
analyze table us_counties compute statistics;