What type of database design to use?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am responsible for all of the training for each person in our company. I
would liketo build a database to track the each training course that we put
on, who taught the course and keep a running record of all courses each
person has attended. Since I am not very experienced with Access, I thought
I would just cheat a little and use the Event Tracking template taht comes
with Access. I played around with this a little while and realized I just
can't figure out how to make it fit my needs. Is there any other samples or
templates out there that might help or should I just try to figure out how to
change the Event Tracking Template?

Thanks in Advance
Wayne
 
this sounds like a fairly simple database. you can probably set it up with
four tables, as

tblPersons
PersonID (primary key)
FirstName
LastName
Trainer (Yes/No field, where Yes = the person taught one or more courses)
(other fields that describe a person in the company)

tblCourses
CourseID
CourseName
CourseDescription
(other fields that describe a course. i'm assuming that some courses, such
as Safety, Diversity in the Workplace, etc, are taught more than once - to
new employees, or as yearly requirements, etc. so this table is just about
listing the courses, NOT about a specific instance of a course being taught.
list every course here once; it doesn't matter if the course if a one-off,
or taught multiple times.)

tblClasses
ClassID
CourseID (foreign key from tblCourses)
ClassDate
(note: if some courses may run to more than one day, you'll probably want
two date fields, StartDate and EndDate, rather than just one date field.)
PersonID (foreign key from tblPersons. this field records which person
taught this particular class.)
(other fields that describe a specific class taught for a specific course.)

tblSessionAttendees
AttendeeID (primary key)
SessionID (foreign key from tblSessions)
PersonID (foreign key from tblPersons. this field records which persons
attended a class - one record per person.)

this gets you started, but if you don't already have a solid grasp of
relational design principles, you really need to "bone up" on that subject
so you'll understand how the above model works and what to do with it. as
you've already seen, in looking at the Event Tracking template, modifying an
existing structure (like building a new one) is difficult unless you
understand the "why" of the design, not just the "what" that you're looking
at.

suggest you see http://home.att.net/~california.db/tips.html#aTip1 (and tip
#2) for more info.

hth
 
Thanks Tina.
This looks a lot simpler than I was seeing my cracked cyrstal ball. I will
look at the link taht you supplied and other info to freshen up. i did some
dabbling some years ago and can see that I need to read some more.

Thanks Again!
Wayne
 
oops, oops, oops! i see that when i changed the name of tblSessions to
tblClasses, i didn't change the rest of my post - sorry! here's the table
setup again, corrected:

tblPersons
PersonID (primary key)
FirstName
LastName
Trainer (Yes/No field, where Yes = the person taught one or more courses)
(other fields that describe a person in the company)

tblCourses
CourseID
CourseName
CourseDescription
(other fields that describe a course. i'm assuming that some courses, such
as Safety, Diversity in the Workplace, etc, are taught more than once - to
new employees, or as yearly requirements, etc. so this table is just about
listing the courses, NOT about a specific instance of a course being taught.
list every course here once; it doesn't matter if the course if a one-off,
or taught multiple times.)

tblClasses
ClassID
CourseID (foreign key from tblCourses)
ClassDate (note: if some courses may run to more than one day, you'll
probably want two date fields, StartDate and EndDate, rather than just one
date field.)
PersonID (foreign key from tblPersons. this field records which person
taught this particular class.)
(other fields that describe a specific class taught for a specific course.)

tblClassAttendees
AttendeeID (primary key)
ClassID (foreign key from tblClasses)
PersonID (foreign key from tblPersons. this field records which persons
attended a class - one record per person.)

the rest of my previous post is "correct".

hth
 
Back
Top