Karl said:
It is to track lots, so the initial drop-down values will be set and then
not changed (address, city, county, state, MapID, etc.). At that point,
then just dates and fees would be maintained. As far as additions and
deletions, usually additions are done in large groups as new neighborhoods
are added, so there may be no new additions for 6 months and then 600 at
once. Then again, the initial values would be set for the drop-down values
and then not changed again.
I was trying to create a table for each value of State, City, County, MapID
and other common values to try to eliminate duplicate record values in the
main table, but wasn't sure if that was less efficient by having to
reference 15 separate tables for individual field values. I have debated
this over and over on how to do this.
Based on this, what is your suggestion? Thanks!
I hate to sound wishy-washy here, but you probably won't go wrong either
way. I usually like to normalize my databases, using numerous links, to
make auditing the values easier. (With lots of smallish tables, it's
not hard to examine the contents of one to look for possible mistakes
and correct them. But it wouldn't be difficult to write a query to do
that.) As far as computer efficiency is concerned, my guess is that
you're nowhere close to exhausting the capabilities of Access. For
details about those, look in Access Help for the topic "Microsoft Access
specifications".
Extreme cases will be obvious to you -- if you have 100 records with the
same long name in them, you would clearly save space by recording that
name just once in a separate table and linking to it. Each link
occupies 4 bytes. Conversely, US Postal Service abbreviations of state
names use only 2 bytes each, so linking to a table of states wouldn't do
much to save space.
Concerning efficiency of human effort to maintain/update the tables,
whether you use a few large tables or (my choice) several smaller linked
ones, it's still a good idea to set up Access queries and forms to
display or input limited amounts of information at a time. Using
queries, or forms based on them, will to some extent hide the details of
how you have organized your tables. You can specify that a given query
be read-only (by declaring its type to be "Snapshot") and thus you can
protect a table or some fields in it from being accidentally changed
when you use that query as the data source. Your queries or forms can
present users with list boxes or combo boxes to limit the choices to
values you know are likely to be valid, cutting down on misspellings,
etc. (Sadly, it can't limit them to choices that are correct --
otherwise, you could simply have Access enter the information.)
For additional information, a discussion of normalization is available
at
http://www.microsoft.com/mspress/books/sampchap/6800.asp#100.
-- Vincent Johns <
[email protected]>
Please feel free to quote anything I say here.