• Robert Frasca (3/23/2010)


    From a design point of view I think I might take a simpler approach to solving the training issue. We know that because "the training item that the employee needs to be trained on is specific to the functional area in which they work" there is a one-to-one relationship between functional_area and training_course so I would add the FK_TrainingCourse to the FunctionalArea table.

    Table Name: FunctionalArea

    Column Name Data Type

    ID int (auto-increment, Primary Key)

    Name varchar(50)

    FK_TrainingCourse int (relates to the TrainingCourse table)

    I wouldn't agree with that at all.

    If a training course is specific to a functional area and can never relate to more than one, you'd obviously put a foreign key in the training course back to the functional area.

    What you're describing is that each functional area has only one training course but that training course could potentially cover more than one functional area.

    The point of the bridge table (naming arguments aside) is to describe a many-to-many relationship. Using a foreign key in the way you have describes a one-to-many (course-to-functional area) relationship.