Well, that approach makes sense, but you could cut down on the number of tables if you simply made the zone NAME be the zone id rather than a number, unless there is some need to have the number instead of the name. In that way, your second table would look like this, and you wouldn't need a table to translate the zone number to it's name:
Lincolnwood Chicago
Skokie Chicago
Des Plaines Chicago
Sea Gate Brooklyn
and so on... basically for every entry there would be an associated zone. This way you could join your company table via the town name and be provided with the proper zone, without having to do a second lookup to get the zone name from the id. This becomes a simple look-up table that provides the zone name directly.
|