> I am contemplating a Historical Database
> I barely can spel redundant let alone normalize so I am handicapped.
> The aim is to enter a name only once. I am studying linking tables.
> In the [Contact]
> idContact
> dZip_Code,
> Address_1,Address_2,
> [City]
> id
> Cityname
> id (al, ar etc)
> Statename
> [ZipCode]
> id
> Zip_Code
> Comment please,

I note two previous responses and agree with the basic premise that if
you are not going to use the three supporting tables for some
information-processing purpose they are overkill, ie if the city, state,
and zip data is purely for information-labeling forget it. Similarly if
your motivation is some sort of space-saving effort, eg idCity=123 takes
less space than "Minneapolis", and multiplied by dozens/hundreds of
instances seems like a good plan; but what is the real cost of disk
storage these days?

However, if this motivation is based on "spelling" - or to be more
constructive, consistency of spelling a given word (eg I have to think
about some of the longer, repeating-character names like Minneapolis -
with apologies to St Paul and all the other good residents of said fair
city) then I will disagree with another correspondent and suggest that
using the City table to construct the combo/list box in a data-entry
form would do wonders for data-entry consistency and spell-checking -
although at the expense of response time if the tables grow to be huge.
Similarly State data-entry will definitely benefit because of the typing
time saved by entering MS instead of M-I-S-S (oops, there's that
spelling and character repetititititition issue again).

The Zip code is unlikely to save space, and depending upon how
'historical' your data/enquiry, of only limited/recent use. The comment
that replaying a five digit zip code with another integer is valid,
however it is also parochial in that many non-US countries use
postal/location codes that are not exclusively numeric. If 'history'
spans more than 200 years the observation is that there will be no zip
code to enter and the data will likely require an additional field:
Country! At which point it is worth mentioning that "State" is a
parochial term too - many countries don't use them/know their regional
subdivisions by that term.

I don't think anyone has mentioned City_State. What is the purpose of
this field given that there are already two separate fields?

You have gone to quite a bit of detail with the physical address and
(normalising) breaking out repeating components into separate
sub-tables, however what about the concept of a person moving about?
Should there be allowance for the fact that an address was only good on
a particular date or for a given period of history? Perhaps this is the
purpose behind Address_1 and Address_2 (except there is no temporal
component)? Why would you have one person and three addresses - and why
in a single db row? Shouldn't there be three address rows (or however
many are necessary) for each person - how would you otherwise construct
a search based upon place, or place and time?

There is a Suffix but not a Prefix, eg "Sir" or "Captain".

There is space for formal names, but not for nicknames, eg a lot of
people are known by their initials, or some familial address, eg "Doc"
(never play cards with him) - my buddy calls me "Buckwheat" for some
reason beyond my understanding but presumably because he thinks I am a

Hope this is a little...helpful,

PHP Database Mailing List (
To unsubscribe, visit:

Reply via email to