Originally Posted by
rpeare
how robust do you intend this to be? With your current structure a client can have 1 and only one position, in other words what if someone gets an internal promotion? you might update the tests required of them but what happens if some of the testing overlaps, would they be required to redo the training or would it carry over? Does your system have any overlapping tests? for instance does the sexual harassment training appear in any training group other than 'universal'? If the testing items are unique to each group that makes things a bit easier but you would still have to account for things like internal promotions.
Secondly, I would tend to approach this a bit differently
Employee Table ----> Position Table (including start and end dates)
This would allow you to mark a person's history within the company and might make it easier to terminate any training groups no longer required in the new position.
As for the individual training items, I would tend to approach it like:
Postion ----> Training Group -----> Individual Training
so for any given position you could bring up a list of training groups and the individual training sessions under those groups. Then, whenever you had a new hire or an internal promotion you can look up all the individual training items they need, add those to the employee test results table and simply record the date completed. Further, for each individual training you could record the number of days (or years or months) the training was good for and run any reminders you needed via a calculation.