Bruce
First, no guarantees of "more experience" -- the following are JOPO (just
one person's opinions)...
BruceM said:
Jeff,
I looked at this question for a while, then decided to see how somebody with
more experience than I answered it. Here is something I was pondering:
Assuming that skill can be summarized in a single word or a short phrase
(Carpentry, Plumbing, Landscape Design), if I was in a similar situation I
would consider having an EmployeeSkills table with three fields:
EmplSkillID, EmployeeID, and Description. There would be a one-to-many
between the EmployeeID fields. I would build a main form based on
tblEmployee and a continuous subform based on tblEmployeeSkills.
Description (in tblEmployeeSkills) would be populated by a combo box that
has another table as its row source, and Description as the bound (and only)
column. I would store the Description word or phrase (Carpentry, etc.)
rather than an ID in the Description field. My thinking is that if I am
I would agree for something like (in the US) State, if I only ever needed to
store the state name. But if I were to be using both state name (e.g.,
Oregon) AND the state abbreviation (OR) (say, for addressing purposes), I'd
create a lookup table with state-related fields, and use whatever primary
key (probably the state abbreviation).
going to store just one field it may as well be the word or phrase rather
than an ID.
I realize that if the term "auto mechanic" is replaced by "automotive
technician" in the list, then storing "Auto Mechanic" means the description
will remain in existing records even if the terminology changes. To
prevent
That is exactly why I'd use a lookup table. If the description is changed,
I'm ... "efficient" (or lazy, depending on your point of view). I'd want to
only have to change the description once, not update an entire table of
embedded stored strings.
that I could store the SkillID number, and have the description appear as
the visible column in the combo box, but in either case it would be a
one-to-many. If it takes two or more fields to describe the skill, the
values could be passed from the combo box row source to unbound text boxes.
If additional employee-specific information about the skill is needed (years
experience, for instance) then a many-to-many) would be necessary, but I
wonder if it is needed in a situation such as I described above. Even if it
is not necessary, is it advisable? I would be interested in hearing your
thoughts on this.
The other aspect that might bear here (personal experience speaking) is if
the lookup values are date-bounded. For example, if a given skill was
deemed valid only between 1/1/2005 and 12/31/2005, I'd need/want to store
the ID that pertains to the valid date range (and be able to look that up
later).
Regards
Jeff Boyce