B
BruceM
In a training records database, each training session has one or more
instructors. Most of the training sessions are one-time events, perhaps to
learn about processing a new type of product or something like that In
other words, it's not a situation where there is a list of courses.
Sometimes the training is conducted by other employees such as supervisors
(who also attend training sessions). Sometimes the training is conducted by
people from outside the company. My approach in an early version of the
database was to just store the name. There is a combo box to select an
employee's name; if the instructor is not an employee, the combo box Limit
to List property is set to no, and the user can just type a name into the
box. I don't really object to doing it that way, although I realize it
violates some normalization principles. However, I'm starting to wonder
about that approach.
It seems to me that there will need to be a separate instructor table, maybe
with just InstructorID, FirstName, LastName, and Company. The employee
table also has FirstName and LastName fields. EmployeeID is a four-digit
number, so I could start the Instructor table with a number such as 1000000
and use DMax to increment by 1. Then I could combine the two tables into a
query that would be the row source for the Instructor combo box on the
Training Session form. By selecting a name I would store the ID number.
The thing I'm not quite sorting out in my head here is that the number will
relate to one of two tables (Employee and Instructor), so how would I go
about handling that relationship? Also, each instructor could be associated
with many training sessions, and each training session could have several
instructors, so it looks like there is a many-to-many there.
Somehow this is all starting to seem more complicated than is necessary. Am
I missing a more direct route?
instructors. Most of the training sessions are one-time events, perhaps to
learn about processing a new type of product or something like that In
other words, it's not a situation where there is a list of courses.
Sometimes the training is conducted by other employees such as supervisors
(who also attend training sessions). Sometimes the training is conducted by
people from outside the company. My approach in an early version of the
database was to just store the name. There is a combo box to select an
employee's name; if the instructor is not an employee, the combo box Limit
to List property is set to no, and the user can just type a name into the
box. I don't really object to doing it that way, although I realize it
violates some normalization principles. However, I'm starting to wonder
about that approach.
It seems to me that there will need to be a separate instructor table, maybe
with just InstructorID, FirstName, LastName, and Company. The employee
table also has FirstName and LastName fields. EmployeeID is a four-digit
number, so I could start the Instructor table with a number such as 1000000
and use DMax to increment by 1. Then I could combine the two tables into a
query that would be the row source for the Instructor combo box on the
Training Session form. By selecting a name I would store the ID number.
The thing I'm not quite sorting out in my head here is that the number will
relate to one of two tables (Employee and Instructor), so how would I go
about handling that relationship? Also, each instructor could be associated
with many training sessions, and each training session could have several
instructors, so it looks like there is a many-to-many there.
Somehow this is all starting to seem more complicated than is necessary. Am
I missing a more direct route?