Proper database design goes beyond techniques learned in Microsoft Access courses. Experience and further training will be necessary for all but the most basic database projects. The practice of database optimization, also called database normalization, is a collection of best practices in database design. The most basic set of these rules is called First Normal Form or 1NF.
Don't Duplicate Fields
Microsoft Access courses teach the basic database grid with each row a record and each column a field within that record. In a database of sales representatives, each row represents one of the sales people. Fields within each record are entries like "name" or "sales territory".
Assume company sales territories are broken out by city. Each city has one rep assigned but each rep has a different number of cities. John Smith might cover Bristol while Mary Jones handles both Cardiff and Newport to have a comparable customer base.
It is a mistake to use multiple territory fields such as City1 and City2. The first rep record would waste space on a blank City2 field. Any city queries would have to search both City1 and City2 fields. If a new rep is added with a 3-city territory, the entire database would have to be rebuilt with a new field.
The Wrong Solution: Combining Fields
An incorrect solution is to have a field called "Territory" and list as many cities as needed. So John is assigned "Bristol" in this field while Mary has "Cardiff, Newport".
Although this seems to solve the problem, it is still duplicative. The queries from your Microsoft Access course would have to be structured to search parts of the field using wildcards and that means slower response. Updating a field means updating the entire list, which could be difficult for a rep who serves a dozen small towns.
The Right Solution: Multiple Records Not Multiple Fields
Don't try to get duplicative information into a single record. Although it seems intuitive to have one record for each employee, as long as each record is unique a better option is to have multiple records.
The above example would have three records: John Smith - Bristol, Mary Jones - Cardiff and Mary Jones - Newport. Since the employee table is likely to have other information that there is no reason to repeat like salary, the territory data should be stored in a separate table.
In order to link the main employee table with the territory table, there needs to be a field in common. The obvious choice is employee name. Obvious, that is, until a second John Smith is hired.
As is taught in Microsoft Access courses, use an employee ID field in the main employee table. Use that ID instead of employee name in the territory table. It not only ensures uniqueness of identifier, but cuts down on errors such as a query for Mary Jones showing only one territory because the other was assigned to "Mray Jones".
You have permission to publish this article for free providing the "About the Author" box is included in its entirety.
Do not post/reprint this article in any site or publication that contains hate, violence, porn, warez, or supports illegal activity.
Do not use this article in violation of the US CAN-SPAM Act. If sent by email, this article must be delivered to opt-in subscribers only.
If you publish this article in a format that supports linking, please ensure that all URLs and email addresses are active links, without the rel='nofollow' tag.
Software Training London Ltd. owns this article. Please respect the author's copyright and above publication guidelines.
If you do not agree to these terms, please do not use this article.
The Really Useful Group Senior Brand Manager Jordana Leighton
"I thought Marius was a wonderful trainer - he was light in touch, humorous, and informative. He taught at a great pace for the mix of abilities in the room and made the subject interesting and enjoyable.
It would have been great to have used our company assets and brand identity as the course examples so we could get used to using them and seeing them.
Sone guidance on good practice of powerpoint design would have been great - the appropriate size relation of header to body text etc to ensure that when we put this into practice it looks good."
GlaxoSmithKline Process & Systems Business Analyst Neelam Shah
"I think the course was very well maintained, the trainer was patient and understood our delays. The trainer was very flexible towards what we wanted him to elaborate on and how we wanted the day to run.
Would definitely recommend the trainer and STL in the future."
Bywaters Commercial Admin Support Trainer Belgin Yanik
"Alastair is a great trainer and i learned a lot from him which I will be taking back with me in work and personal use."