A database with three tables - Student, Rating, RatingHistory.
When the user first adds a new student, the student will be allocated a Rating, even if they have no previous experience.
Subsequent to that, maintenance of the Student's rating will be via the RatingHistory table (StudentId, RatingDate, and RatingId). So that in future a students progress up the ratings ladder can be viewed/analysed.
Should there be a RatingId on the Student record, which gets set when the Student is first added (as well as adding a record to the RatingHistory table), and then routines to update Student.RatingId whenever records are added/amended/deleted in the RatingHistory table?
OR
Should there be NO RatingId on the Student record, ONLY records in the RatingHistory table?
I know the second option is the most 'normalised' database, but what about from a programming perspective, and convenience of data extraction, etc?
Thanks for taking the time to read my post.
When the user first adds a new student, the student will be allocated a Rating, even if they have no previous experience.
Subsequent to that, maintenance of the Student's rating will be via the RatingHistory table (StudentId, RatingDate, and RatingId). So that in future a students progress up the ratings ladder can be viewed/analysed.
Should there be a RatingId on the Student record, which gets set when the Student is first added (as well as adding a record to the RatingHistory table), and then routines to update Student.RatingId whenever records are added/amended/deleted in the RatingHistory table?
OR
Should there be NO RatingId on the Student record, ONLY records in the RatingHistory table?
I know the second option is the most 'normalised' database, but what about from a programming perspective, and convenience of data extraction, etc?
Thanks for taking the time to read my post.