A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Access » Database Design
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Junction Tables



 
 
Thread Tools Display Modes
  #1  
Old April 27th, 2010, 02:06 PM posted to microsoft.public.access.tablesdbdesign
.:RoKsTaR:.[_2_]
external usenet poster
 
Posts: 39
Default Junction Tables

I'm just curious if it makes sense to use junction tables in this instance:

student - studentID, studentfirst, studentlast, gender, age (adult, teen, or
child), lessonday, status (current or retired)

address - addressID, address, city, province, postalcode

phone- phoneid, phonenum, extension, phlocation

email - emailid email, emailLocation

gaurdian – gaurdianid, gaurdianfirst, gaurdianlast, relationship


studentaddress - studentID, addressID
studentguardian - studentID, guardianID
GuardianAddress - guardianID, addressid
Studentphone - studentID, PhoneID
Guardianphone - guardianID, PhoneID

Notes on this table:
I'm a music teacher who teaches an average of 50 students at a time. I'm
trying to build a database track contact info, invoice students, and track
attendance. I'm starting off with the contact portion of the database and
once that is done I'll move on to the rest.

-Adult students don't have guardians
-Students with divorced parents may have 2 addresses and 4 Guardians. Not
many students in this situation
-Most parents have 2 emails and phone numbers
-Some young students may provide their own phone and email

That's it, thanks in advance

  #2  
Old April 27th, 2010, 03:26 PM posted to microsoft.public.access.tablesdbdesign
Stefan Hoffmann
external usenet poster
 
Posts: 991
Default Junction Tables

hi,

On 27.04.2010 15:06, .:RoKsTaR:. wrote:
I'm just curious if it makes sense to use junction tables in this instance:

student - studentID, studentfirst, studentlast, gender, age (adult, teen, or
child), lessonday, status (current or retired)
address - addressID, address, city, province, postalcode
phone- phoneid, phonenum, extension, phlocation
email - emailid email, emailLocation
gaurdian – gaurdianid, gaurdianfirst, gaurdianlast, relationship

studentaddress - studentID, addressID
studentguardian - studentID, guardianID
GuardianAddress - guardianID, addressid
Studentphone - studentID, PhoneID
Guardianphone - guardianID, PhoneID


In short: Yes, normally it does.

But you can "simplify" it a little bit mo

Guardians and Students are People

So I would generalize it:

People: ID, FirstName, LastName
Address: ID, address, city, province, postalcode
Email: ID, email, emailLocation
Phone: ID, phonenum, extension, phlocation

PeopleAdress: idPeople, idAddress
PeopleEmail: idPeople, idEmail
PeoplePhone: idPeople, idPhone

Student: ID, idPeople, LessonDay, Gender, Age, Status
Guardian: ID, idPeople, Relationship

StudentGuardian: ID, studentID, guardianID


mfG
-- stefan --
  #3  
Old April 27th, 2010, 05:00 PM posted to microsoft.public.access.tablesdbdesign
.:RoKsTaR:.[_2_]
external usenet poster
 
Posts: 39
Default Junction Tables

Ok, I see what's going on. You're using the student/gaurdian table to join
people together from the separate student and guardian tables. I can follow
that, thanks!
  #4  
Old April 27th, 2010, 05:01 PM posted to microsoft.public.access.tablesdbdesign
Jeff Boyce
external usenet poster
 
Posts: 8,621
Default Junction Tables

I'll add another observation ...

Your field [age] is guaranteed to require maintenance (i.e., "fixing").
Even if you don't use age = years, but the categories you mentioned, sooner
or later kids grow up. How frequently do you plan to revisit [age] and
update it? What criteria will you use?

What happens if someone else takes over the maintenance of this application?
Do they use the same criteria? Do they even know they need to maintain (AKA
"fix") that field? How frequently?

As an alternative, you could enter Date of Birth ... and use a function to
"calculate" age, or age category, or ...

That way, you NEVER need to maintain/fix that field's values!

Regards

Jeff Boyce
Microsoft Access MVP

--
Disclaimer: This author may have received products and services mentioned
in this post. Mention and/or description of a product or service herein
does not constitute endorsement thereof.

Any code or pseudocode included in this post is offered "as is", with no
guarantee as to suitability.

You can thank the FTC of the USA for making this disclaimer
possible/necessary.

".:RoKsTaR:." wrote in message
...
I'm just curious if it makes sense to use junction tables in this
instance:

student - studentID, studentfirst, studentlast, gender, age (adult, teen,
or
child), lessonday, status (current or retired)

address - addressID, address, city, province, postalcode

phone- phoneid, phonenum, extension, phlocation

email - emailid email, emailLocation

gaurdian - gaurdianid, gaurdianfirst, gaurdianlast, relationship


studentaddress - studentID, addressID
studentguardian - studentID, guardianID
GuardianAddress - guardianID, addressid
Studentphone - studentID, PhoneID
Guardianphone - guardianID, PhoneID

Notes on this table:
I'm a music teacher who teaches an average of 50 students at a time. I'm
trying to build a database track contact info, invoice students, and track
attendance. I'm starting off with the contact portion of the database and
once that is done I'll move on to the rest.

-Adult students don't have guardians
-Students with divorced parents may have 2 addresses and 4 Guardians. Not
many students in this situation
-Most parents have 2 emails and phone numbers
-Some young students may provide their own phone and email

That's it, thanks in advance



  #5  
Old April 27th, 2010, 05:53 PM posted to microsoft.public.access.tablesdbdesign
.:RoKsTaR:.[_2_]
external usenet poster
 
Posts: 39
Default Junction Tables

That's a really cool idea, great thinking! How's that done?

I'll be the only one using this database, so I'm not to worried. However,
anything to make it work better is great
  #6  
Old April 27th, 2010, 07:51 PM posted to microsoft.public.access.tablesdbdesign
Jeff Boyce
external usenet poster
 
Posts: 8,621
Default Junction Tables

Unfortunately (and it may be just me), when I have to go back later (even a
few months later) and figure out what I was doing (and thinking?!?) in an
application, I AM worried. I try to leave breadcrumbs and simplify as much
as possible ... because I MAY be the only one that has to use the db! g

If you add a date/time field to your table and call it something like
[DateOfBirth] (or, if you have a really really good memory, [DOB]), you
would enter the individual's birthday.

Then, in a query, you could call a function (a procedure you write that
returns a value) to derive the age category your original post mentioned.
To determine something like "age", there are a lot of examples of code you
can find by searching on-line for "calculating age from birthdate" and "MS
Access".

Good luck!

Regards

Jeff Boyce
Microsoft Access MVP

--
Disclaimer: This author may have received products and services mentioned
in this post. Mention and/or description of a product or service herein
does not constitute endorsement thereof.

Any code or pseudocode included in this post is offered "as is", with no
guarantee as to suitability.

You can thank the FTC of the USA for making this disclaimer
possible/necessary.

".:RoKsTaR:." wrote in message
...
That's a really cool idea, great thinking! How's that done?

I'll be the only one using this database, so I'm not to worried. However,
anything to make it work better is great



  #7  
Old April 27th, 2010, 08:30 PM posted to microsoft.public.access.tablesdbdesign
.:RoKsTaR:.[_2_]
external usenet poster
 
Posts: 39
Default Junction Tables

great, I'll look into that
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 03:48 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.