>With a gradeing system you will probably have some many to many relationships...so be aware of the potential problems with this.
In most moderately complex system, you will sooner or later have many-to-many relationships. This is solved by creating an intermediate table, that resolves the many-to-many relationships into two one-to-many relationships.
For instance, in the case of a grading system, you can have a table "subjects" and a table "students". There is a many-to-many relationship between the two - many students take the same subject, and one student takes many subjects. The "intermediate table" could be called "grades", and it has foreign keys to both students and subjects.
Additional explanations at
http://www.levelextreme.com/Magazine/August2002/Page7.asp.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)