Database Design approach

For handling business card information (Entering New, Editing, Deleting) I am creating small database in Access. 2010
Thinking about tables, fields and relationships (database schema) I am wondering should I create
One or more tables.
Option with several tables:
tblClient(Client_ID,Client_FName,Client_LName,Client_Title,Client_Position,Client_Picture,Bussiness_Name)
tblAddress(Adrress_ID, Adress_1, Address_2,City, Province_State, Country,
tblContact(Contact_ID,Business _Phone_Num,Business_Fax_Num, Cell_Phone_Num ,E_mail, Web_Site)

tblClient_Address(Client_ID,Address_ID)
tblClient_Contact(Client_ID,Contact_ID)

Or should I put all fields in one table?
Is the table structure ok should I add some more fileds(Entry_Date,Last_Time_Updated…?) and what is good approach?
TarasAsked:
Who is Participating?
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.

arnoldCommented:
Purpose, will define the extent to which you will go.
For personal use a single table should do. Not sure whether you have company, business cards.

It is hard to answer a question as you aske.d
I.e. If you will have millions of business cards, creating a multi table where city, states, zip codes could be used
...
0
PatHartmanCommented:
There are two reasons for creating a separate address table.
1. Each client has multiple addresses
2. An address can be shared by multiple clients.

Reason 1 is more likely and in this case the junction tables are
1. Client-Addresses
2. Contact-Addresses

The relationship from client to contract is inferred through the Address.
1
Neil FlemingConsultant and developerCommented:
As Pat says, if the client has multiple addresses, you are better off with an address table.

For your tblContact, I would be tempted to design it not as you specify, but as:

ContactID
ContactTypeID (office,cellphone,email,website,IM,twitter) etc
ContactValue - which could be a number, email address etc

Then you need a simple table tblContactType that enumerates types of contact.

That way you can have unlimited contact details for each client, but if the client only has a single phone number, you are not wasting table space with a raft of empty fields. And if a new "contactType" arises (instagram, snapchat etc) you can simply add it to tblContactType.

The awful design of Outlook's contact fields should be a warning to us all in this regard.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

TarasAuthor Commented:
I am always a little confused in similar situation as this one.
 From point of who is more important client – person or client as member or part of business or company that he or she works for.
 If we take assumption  that business card will represent somebody who works for Business or   particular organization.
Address is related to that situation.
Client is important as part of ” Business” and that address  is related to where he  is located. I see address in that sense.
Why Contact need to be connected to person and not to business.
Does it mean If somebody is a consultant or contractor that do not have physical location – address for his business.
In that that scenario we do not enter his address does it mean that we will not be able to add contact information for him or her as contact info is connected through Client_Address table
?
0
arnoldCommented:
Your design of the database structure should be answer
the simplest all Santa in single table, you would only look for contacts.
If you want to look for contacts from the same company, a company table is useful.
If you want to locate contacts who live in the same town, city, country.

Extended contact to have multiple ......
0
PatHartmanCommented:
It is hard to tell you exactly what your schema should be without seeing a complete requirements document along with all your analysis on entities and attributes.  Although there are standard models for contacts, your requirements might be different.  We don't intuitively know your requirements.

For my purposes, I organize my business cards by individual rather than business.  That means I don't need a separate address table because each individual has only a single address.  I have queries that can bring back all people associated with a particular business but that isn't their primary organization.

However, developing a contact application for a business, I would organize by business and each person would be a contact associated with the business because in this case I would expect to have multiple contacts per business.  That also dictates the importance of an Address table but Addresses are linked to contacts.  You also need to be careful with this model because if you find that you need to change an address for Suzie, you need to determine if the address change is generic in that it will actually change the address for everyone linked to that address or if Suzie is merely moving to a different field office.
0

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
TarasAuthor Commented:
Thank you all a lot,  after so many years still a lot to learn.
0
TarasAuthor Commented:
Thanks a lot
0
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
Databases

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.