[AccessD] A database design for contacts

Robert L. Stewart rl_stewart at highstream.net
Wed May 9 18:01:19 CDT 2007


Jim,

I did not consider contacts as the thing I was designing
for, I thought of it as names in general.

Having designed one that is being sold as part of a
package, I designed it as follows:

tblName - any kind of name

tblNameRelationship - Relates names to each other and
     how they are related. related to tblName 2 ways
     NameID and RelatedNameID

tblNameNametype - all the types that a name can be since
     name can be of more than one type. related to tblName
     and tlkpNameType

tblNameAddress - all addresses associated with a name
     linked to tblName

tblNameAddressType - all of the types associated with a
     specific address linked to tblNameAddreas and
     tlkpAddressType

tblNamePhones - all phone numbers associated with a name
     liked to tblName and tlkpPhoneType

tblNameEmail - all email addresses associated with a name
     liked to tblName and tlkpEmailType

tlkpNameType - a list of all the types of names used

tlkpAddressType - a list of all address types

tlkpPhoneType - a list of all phone types

tlkpEmailType - a list of all email types

The design above would allow you to associate a doctor
with a practice, a clinic, and a hospital. It is extremely
flexible.

At 04:32 PM 5/9/2007, you wrote:
>Date: Wed, 09 May 2007 15:37:15 -0400
>From: "Jim Dettman" <jimdettman at verizon.net>
>Subject: [AccessD] A database design for contacts....
>To: "'Access Developers discussion and problem solving'"
>         <accessd at databaseadvisors.com>
>Message-ID: <002b01c79271$738d0550$8abea8c0 at XPS>
>Content-Type: text/plain;       charset="us-ascii"
>
>Hi All,
>
>   In light of recent discussions on lookup tables, I'm curious on how
>different people have attacked the contacts problem.  For example, let's say
>I need to keep track of Doctors, Attorneys, Therapists, Hospitals, Clinics,
>etc.  A contact could be an individual or a group or company.  For example,
>I might have three doctors working as  a group called Plank Road Medical.
>You need to keep track of both the individual doctors and their contact info
>and the contact info for the group.  Also the fact that they are all
>associated.
>
>   Do you:
>
>A. Have a table for every possible type of contact?
>
>or
>
>B. Have one contact table which includes a contact "type".
>
>
>   and the second question; how do you handle companies vs. individuals and
>link the two?  Do you:
>
>A.  Have a separate table for companies.
>
>B.  Have a flag which indicates if the contact is a company or an individual
>and self-join to your single table.
>
>
>   I know the right answer, but I'm wondering what everyone feels is the
>practical answer.  Given the recent thread on Lookups, this is probably a
>good topic for discussion.
>
>Jim.
>





More information about the AccessD mailing list