Create two association tables:

Contributor
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra
|
+----------------+--------------+------+-----+---------+----------------+
| Contributor_ID | tinyint(3)   |      | PRI | 0       | auto_increment |
| Name           | varchar(100) |      |     |         |
|
| Street_Address | varchar(50)  | YES  |     | NULL    |
|
| City           | varchar(20)  | YES  |     | NULL    |
|
| State          | varchar(5)   | YES  |     | NULL    |
|
| Zip            | mediumint(8) | YES  |     | NULL    |
|
+----------------+--------------+------+-----+---------+----------------+

New tables:

Contributor_Contact
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra
|
+----------------+--------------+------+-----+---------+----------------+
| Contributor_ID | tinyint(3)   |      | PRI | 0       |
| Contact_ID     | tinyint(3)   |      | PRI | 0       |
+----------------+--------------+------+-----+---------+----------------+

Contributor_Volunteer
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra
|
+----------------+--------------+------+-----+---------+----------------+
| Contributor_ID | tinyint(3)   |      | PRI | 0       |
| Volunteer_ID   | tinyint(3)   |      | PRI | 0       |
+----------------+--------------+------+-----+---------+----------------+

-- Greg Johnson

-----Original Message-----
From: David S. Jackson [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 30, 2002 11:15 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: MySQL and 3NF


Hi,

I came across a relationship between entities that I hadn't
counted on, and I'm trying to adjust my database tables to handle
this new relationship.  I need some help with visualizing and
implementing this relationship into the database design.

The database is for an inventory of contributions to be auctioned
off for a Montessori school.

Here are my tables:

mysql> show tables;
+----------------------+
| Tables in vmscatalog |
+----------------------+
| Category             |
| Contact              |
| Contributors         |
| Delivery             |
| Groups               |
| Item                 |
| Volunteer            |
+----------------------+

I've assumed that each contributor (business, individual,
whatever) would have only one volunteer from the Montessori
school that they would be dealing with.  so I've got the
following structure for the contributors table:

mysql> describe Contributors;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra
|
+----------------+--------------+------+-----+---------+----------------+
| Contributor_ID | tinyint(3)   |      | PRI | 0       |
auto_increment |
| Name           | varchar(100) |      |     |         |
|
| Street_Address | varchar(50)  | YES  |     | NULL    |
|
| City           | varchar(20)  | YES  |     | NULL    |
|
| State          | varchar(5)   | YES  |     | NULL    |
|
| Zip            | mediumint(8) | YES  |     | NULL    |
|
| Contact_ID     | tinyint(3)   | YES  |     | NULL    |
|
| Volunteer_ID   | tinyint(3)   | YES  |     | NULL    |
|
+----------------+--------------+------+-----+---------+----------------+
8 rows in set (0.01 sec)

Likewise, the Volunteer_ID ties in with a Volunteer table and a
unique row in the volunteer table.

Now I've got a situation where a large Museum actually has two
people from the school each talking to different departments in
the Museum, each donating a different set of gift certificates.
So I have to figure out some way to let the contributors' table
handle more than Contact_ID and more than one Volunteer_ID.

Don't I want each Contact_ID field for each record to be a single
discrete ID number?  How would you guys handle this?

TIA!

-- 
David S. Jackson                        [EMAIL PROTECTED]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
It's hard to get ivory in Africa, but in Alabama
the Tuscaloosa.  -- Groucho Marx

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to