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

0
Utf
4/27/2010 1:06:01 PM
access.tablesdbdesign 510 articles. 0 followers. Follow

6 Replies
705 Views

Similar Articles

[PageSpeed] 17

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 more:

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 <--
0
Stefan
4/27/2010 2:26:04 PM
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!
0
Utf
4/27/2010 4:00:02 PM
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:." <RoKsTaR@discussions.microsoft.com> wrote in message 
news:A13CF825-7B51-4E59-A256-5519C063B74B@microsoft.com...
> 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
> 


0
Jeff
4/27/2010 4:01:58 PM
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 :)
0
Utf
4/27/2010 4:53:01 PM
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:." <RoKsTaR@discussions.microsoft.com> wrote in message 
news:033B1C1C-E78E-499F-A177-C70DCA21F59B@microsoft.com...
> 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 :) 


0
Jeff
4/27/2010 6:51:59 PM
great, I'll look into that :)
0
Utf
4/27/2010 7:30:02 PM
Reply:

Similar Artilces:

Adding records to table from a form, with pre-populated values
I'm trying to construct a form that will let me translate pre-defined "base" sentences to several languages. I have the following tables: BaseTexts: ID, Text Languages: Language Translations: BaseTextID, Language, Translation but the Translations table only has records if a translation actually exists. So I have a query that gets me all (BaseTextID, Text, Language) triplets for which a translation is needed (Text <-> BaseTextID is 1-1 mapping, but users need to see the text itself in order to translate), and I want to present a multiple-records form with 4...

Updating two two tables based upon the response to questions in a subform
Me again. I'm trying to populate two tables based upon the results to questions on a subform. I have a form and one subform. The subform has a variable number of questions related to the form. Each question is limited to either "Pass", "Fail", or "N/A". If the user should select "Fail" on a question, I want to add a record to a table called "tblCARs" and a record to a table called "tbl CARLineItems". However, for every subsequent "Fail" response I want (need) to only add a record to the table "tblCARLi...

Need help with SQL tables
After running a security reconcile sa was no longer a user in GP. I received the answer below about re-adding it, but I don't know how to add a userid in to a table. I can't find anything on knowledgebase about this. We don't have the SQL Enterprise Manager but use the SQL 2005 Management Studio Express. Can anyone help me? I just need to know the script that will add it to these tables. Thanks. Tracey D "Therefore it will be just a matter of adding 'sa' USERID into the following tables in DYNAMICS database as a minimum. Once added, use ano...

Intelligent Pivot Table with Large Data Sets
Pivot Tables are great with small datasets. Does anyone have suggestions of products that can datasource from a ODBC source and manage large datasets (1M+ rows), visualizing the dat in a crosstab/pivottable format ? Unfortunately the underlying logic in the PivotTable/MSquery link isn' too intelligent in that is always wants to read the whole darn databas table before even presenting a field list. I assume this is due to th abstraction of the data created by sticking MS/Query inbetween th Excel pivot table service and the actual datasource? Seems pretty simply from a conceptual POV: 1. ...

2 pivot tables on one tab
Is it possible to put 2 Pivot tables on the same tab in my workbook? Or does anyone have any ideas on what would be the best way to chart Capital Pircahses? I have 5 coums and 4 rows. The rows are per division, and the columns are for the disposal amount, gain or loss, book value, depreciation & purchase price. I already have one pivot table in my report. Would this be too repeatative? Thanks You can put multiple pivot tables onto a worksheet. If the second one is based on the same data, select and copy the first, select a cell some distance away, and paste it. Each pivot table...

A save operation on table "PM_Transaction_Work" casused a sharing
Hi, When my user post a PM batch using VPN, the connection is broken and the batch posting is interrupted. The status is "Table Updates Interrupted". When I try to recover the batch through Batch Rocovery, it did not allow to. saying that" Batch NOV INVOICES" failed to complete posting. Use Batch Recovery window to complete the posting process. " (I am at the batch recovery window already!!!!) When I click "more" then I see the following: "A save operation on table 'PM_Transaction_WORK' caused a sharing error." Further invest...

State table lookup
Hi I have a form for entering Customer data. When entering a new record, I have a lookup combo box to validate the state that the user enters. The combo box displays the state code and the state name. (ie. Ca and California). The state code is the bound value and the state name is the display value. The only time I want to display the full state name is when the user is entering data into the form. I want the state code to be displayed on queries, forms, and reports. Is there a way to do this ? Thanks in advance Mark Create a table with 2 fields like this: StateID Text (say...

Table object
There is a little table object that shows up on the top left of a table that you can use to move the table to the left or right. But I can't seem to figure out how to get that table object to appear. You have to click around select the whole table/ deselect the table and then at some point it appears. How do you get it to appear so you can move the table? I am getting tired of trying to randomly get it to appear. Thanks, Tom Which version of Word? We support about 20... On 7/04/10 2:14 PM, in article O4J9ajg1KHA.4832@TK2MSFTNGP04.phx.gbl, "tshad"...

Pivot Table Freezes
I have many pivot tables off a large database and they periodically freeze when I refresh the data. Only solution is to crash out. Any ideas, comments, solutions out there. The machine has been checked out OK. I work on a network - checked out OK. Maybe this is the problem: XL2000: PivotTable Updated Slowly with OLAP Data Source http://support.microsoft.com/default.aspx?scid=237469 Jimbo wrote: > I have many pivot tables off a large database and they periodically freeze > when I refresh the data. Only solution is to crash out. Any ideas, comments, > solutions out there....

Copying fields from combo box to a table
Hi, I am creating a database for our Machine Maintence Report (access 2003). I created a combo box from table1 and I want to have the selected fields (i.e. Machine, Technician, Engineer etc...) in table1 to be copied in table2. This table2 has the same fields Machine, Technician, Engineer plus the other field that will be updated when the maintenance is done such as remarks, issue and data readings. Looking forward for your help. If you really have a need to store this information in multiple tables, you can use code in the After Update event of the combo box to push the valu...

Find cell numbers in a table so I can multiply
Hello, I have a word document and in the documents header there is a table. This table a has diferent number of cells in each row like: Row one: 2 cells Row two: 4 cells Row three: 2 cells Row four: 10 cells Row five: 2 cells What I wanted to do is multipy 3 cells together thats in row four and show the total in the same row. I have a number in the 3rd cell that needs * by the number in the fith cell that needs * by the number in the seventh cell and totaled in the 9th cell. I know I have to select the ninth cell and select table/formula then what? -- Thanks, Chad I ...

SQL to get the lowest unique value from table
Hi I'm looking for some SQL to get the lowest unique value in a table: eg, <table> ID BID 1 1 2 1 3 1 4 2 5 2 6 2 7 3 8 4 3 is the lowest unique value. I would need to return the ID. Any suggestions? thanks Lee "Lee" <lee@digital-interactive.com> wrote in message news:a981d263-7f22-4b14-8493-014559da8590@z41g2000yqz.googlegroups.com... > Hi > I'm looking for some SQL to get the lowest unique value in a table: > eg, > > <table> > > ID BID > 1 1 > 2 1 > 3 1 > 4 2 > 5 2 > 6 2 ...

Table calculations. Season from Date in Hunting Harvest Database.
I am trying to set up a hunting harvest database. I would like to add a column to the original data table that automatically calculates the hunting season, which is based on a specific harvest timeframe. Each harvest record entry has a specific date. For example, when a record of a deer harvested on 12-3-2007 is entered; I want the database to calculate that the date occurred during the fall 2007 season. Thus, I want 2007 to be automatically entered for this record in a separate column. However, our seasons last into the new year, so if for example a record is entered of a ...

Pivot Table Data Ranges
I just upgraded to excel2000, and am finding out that keyboard shortcuts used in 97 do not exist in 2000. Does anyone know of a KEYBOARD shortcut to modify, expand and or create data ranges in the dialog box for entering the range for the pivot. I have many data 'lists' which are added to each month, and when I want to update the corresponding pivot table, I used to simply hit "shift" + "end" + "down arrow" to automatically go to the last populated cell in the list. In 2000, I either have to enter in the cell addy's manually or use the mouse...

Pivot Tables show zero balance
Hi - I have a pivot table.... I want to show customers that have an outstanding balance. when i sort by month, i see everything, totals of who paid and who ha not. I want to sort to see only who is outstanding. How do I do this? CURRENT SETUP: Sort by page = date of invoice (by month) Rows = client name, then the tota -- Message posted from http://www.ExcelForum.com You could add a Status column to your data source, and calculate the account status. For example, with customer names in column C and amounts in column H: =IF(SUMIF($C$2:$C$39,C2,$H$2:$H$39)>0,"Outstanding&...

Web table to Excel...
Could someone help me exporting the tables from the following web-page into excel ? http://www.ekdd.gr/ESDD/IH/REBBBD-esdd-epityxontwn.htm (use unicode encoding) is this impossible ? ...

MFC String-table in C# ?
Hi, maybe a bit OT for this newsgroup, but I know that people here use C#, too. So, does anyone know how the MFC string-table technique map to C#/WinForm? I initially thought about using an integer->string map in C#, but is there some built-in mechanism to manage that? Thanks, Giovanni "Giovanni Dicanio" <giovanniDOTdicanio@REMOVEMEgmail.com> ha scritto nel messaggio news:ugqw1g7LJHA.1736@TK2MSFTNGP03.phx.gbl... > So, does anyone know how the MFC string-table technique map to C#/WinForm? ....after some web search, it seems that C# has a ResourceManager class ...

Copying and Pasting Excel Tables into Word
We do our financials in Word, and copy and paste special as enhanced metafiles the tables that we do in Excel. This works perfectly in Word 2003. In 2007 however, when we past the table and print it, the table looks different (letter spacing funny, not smooth). I have tried printing to five different printers and it still happens. I'd suggest a slightly different approach. If you insist on using enhanced metafiles, try the following: 1. Select the range that you want to copy. 2. Instead of Copy, select the dropdown under Paste>As Picture>Copy as Picture. 3...

Sizing Data Tables on a chart
When I have a data table attached to a chart and size the chart, the data table does not size proportionately ...

Inserting New rows into IV00108 Table
I am trying to insert new rows of data into the Iv0018 table I have another table in SQL with tthe data but when i use DTS to append this data it will not let me because of a null value being inserted in the DEX_row_Id column. Is there a SQL script that will allow me to apend this data to this table since the part numbers already exisits this is another pricelevel i am adding. This is SQL 2000 and GP 9.0. Thank you Ken DEX_ROW_ID is an identity column so it will auto populate. In DTS do not map a value for DEx_Row_ID (ignore it) "kfoster@pfeinc.com" <kfosterpfeinccom@disc...

how to link a .txt ( .dat) as a table by VB
Hi from Meudon (France) I want to link a .txt file as a table in my acces db. How to by VB : code and reference(s) (Acces 2003) Thanks by anticipation ...

Finding PostingAccounts in Tables
?Hello Folks, Under Tools>Setup>Posting>Posting Accounts. where there is a list of all the accounts to post the transactions, which I am trying to find in the Tables as well. I I can spot a Table under Company SY01100 but that displays the data in a different way, Also when I copied this table from A to B ; In A it has all the account #s but in B it is all Blank. Should I be looking somewhere else? please help Regards, Hi Viol-8-r, If you are looking for the GL Master files then you are looking in the wrong place. The Master files themselves are in GL00...

Query table using criteria from an Excel document
Hello, I have a Access table of names and addresses. There is a postcode (zipcode) text field. I also have an excel spreadsheet with a single column of postcodes; no duplicates. I need to get query to return each name and address in the table which has a postcode listed in the spreadsheet. Typing each postcode manually into the query seems clumsy. Any ideas? Add a link to the Excel data. Create a new query joining the linked Excel data and your Access table on the postcode field. Those that match will result. -- Regards Jeff Boyce www.InformationFutures.net Microsoft Office/A...

Problem inserting calculated pivot fields into Pivot Table (2007)
Working with Excel 2007 and a Pivot Table. Created a Calculated field. The field shows in the Field List, but Excel will not let me drag the Calculated field into the Pivot Table areas (other than into the Values area). What am I doing wrong? Hi A calculated item or field, can ONLY be allocated to the data area. It's position within the data area can be modified, but it cannot be moved to any other area -- Regards Roger Govier wamiller36 wrote: > Working with Excel 2007 and a Pivot Table. Created a Calculated field. The > field shows in the Field List, b...

Excel Pivot tables and charts
How do I retain pivot chart formats that I have made (esp. column colours) after refreshing the data on the source pivot table? Hi, Loss of chart formatting wwith regards to pivot charts is a know problem, which requires VBA to re apply recorded formatting. XL2000: Changing a PivotChart Removes Series Formatting (Q215904) <http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q215904 > Cheers Andy Pauleze wrote: > How do I retain pivot chart formats that I have made (esp. column colours) > after refreshing the data on the source pivot table? -- Andy Pope, Microsoft MVP...