Access Database Concept

Hello Experts,

This question is not a purely technical in nature.  It is more of a hybrid concept/technical question.  I am pretty new to the database programming field.  I have been slowly standardizing and normalizing a database for this organization that I started working with this year.  One concept that I am attempting to gain a grasp on is this.  We have an number of client organizations with multiple offices and therefore multiple locations - with multiple contacts in each of those offices.  These organizational offices are mainly located in the United States, but there are also some international locations.  For example, XYZ organization may have 5 - 6 office locations.  At each of those office locations, we have 10 - 20 individuals that we communicate with regularly and need to keep an accurate and up to date record as quickly and routinely as possible.

I want to create a small DBMS that allows me to create, maintain and update this contact information quickly and efficiently.

Let us say a client organization XYZ has six offices: two in New York, NY, one in Philadelphia, one in LA, one in SF and a final one in London, England. We interact with multiple contacts at every level at these locations.  Furthermore, there is a lot of mobility with these contacts.

For example,  an Adam Smith may be located in the NY office and transfer to the London England office and a new person - Amanda Smith - takes over Adam's old position when he leaves.  I want to quickly update Adams information by changing his office location to London England while also assigning a new contact Amanda Smith to the NY office location that was vacated by Adam.  Another reason is that the contact office location may change address.  Let us say the NY office moves to a different location.  We may have 30 - 40 contacts at that organization whose address information has changed.  I would like the ability to change the address in one place and will repopulate those 30 - 40 contacts.  

I realize that this is not the correct terminology, but I want this operation to be done at the so called "highest levels" of the database structure so that I can make minimal changes at the top of the structure and this would repopulate all records at the lower levels.  Again, I realize that is probably not the correct metaphor as much of this will be performed by the relationships that are defined.  

I am sure there are a number of different ways to tackle a situation like this, so any suggestions would be welcome. To summarize, I am looking for some conceptual/technical advice on how to implement a small DBMS to fit these needs.  

For general information, I am utilizing Microsoft Access 2013 database program and I would consider myself an beginner/intermediate level of expertise with Microsoft Access.

Thanks in advance...
idejjedi2Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Shaun KlineLead Software EngineerCommented:
It sounds like you need a customer table, a locations (offices) table with a tie back (foreign key) to the customer in the customer table, and an employee table with a tie back (foreign key)  to the locations table. If the locations table contains the physical address, then movement of an employee will not be an issue, as you would pick up the address information for that employee's location.
Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
<<I realize that this is not the correct terminology, but I want this operation to be done at the so called "highest levels" of the database structure so that I can make minimal changes at the top of the structure and this would repopulate all records at the lower levels. >>

  That in a nutshell is the normalization of data and one of the key tenants of that is that data only gets stored once, and only in the table that pertains to it.   If you do that right, then there is no re population of data in other tables.

  So as Shaun has already outlined, you'd have one table for customers, one for locations, and one for employees as a start.   You may also need a few additional ones, such as job titles, and then junction tables, which allow for a Many to Many relationship.

 For example, one employee in a company may have multiple locations or job titles associated with them.

Jim.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Nick67Commented:

I am pretty new to the database programming field.
I have been slowly standardizing and normalizing a database for this organization that I started working with this year.
I would consider myself an beginner/intermediate level of expertise with Microsoft Access.

These things are contradictory, no disrespect intended

Start here
http://www.phlonx.com/portfolio/nf/
When you are done, you'll begin to grasp how to model the data you want to store.
This skill comes before all else, and is critical to a sound app.
When you are done, you'll see why the bold word was a red flag :)
PatHartmanCommented:
This is actually easier than you might imagine in a properly structured database since records don't ever actually move.  Simply changing the locationID in a contact record automatically "moves" him to a different location.

Start with the three tables suggested and then expand based on Jim's suggestions.
idejjedi2Author Commented:
Experts,

Sorry it took so long to get back.  I was traveling.  Thank you for all your responses.  I appreciate the feedback.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.