Records creates double entry, should only be one
If you link Student-->Course-->Module, you would avoiding having Module Z causing both Course A &amp; B to show up for that student.

Alternatively, you could slightly modify the current to have Student-->(Module &amp; Course). If your Enrollment table includes all three identifiers, it would be trivial to determine if the student is enrolled in Module Z because they are also enrolled in a specific class, or because they are enrolled in the module directly, rather than via a class.