Course prerequisites are stored and calculated using the following prerequisite data feeds:
Prerequisite Groups
Prerequisite Courses
Prerequisite Tests
Prerequisite Permissions
Prerequisite Data Structure
Each prerequisite group contains an id and a course_id.
The course_id listed is for the course that requires prerequisites.
The group id is used by prerequisite tests, permissions, and courses to create a group of requirements that all need to pass in order for the student to match the prerequisites for the group. In other words, every item in the group has an AND relationship.
A group may have multiple prerequisite courses referencing it, and the actual requirement for the group is (prerequisite course AND prerequisite course...).
A prerequisite course may have multiple groups associated with it.
In this case, a student only needs to match the prerequisites for one group in order to pass all prerequisites for the course.
What this means is that the actual requirement for a prerequisite course is prerequisite groups with an OR relationship amongst each other (prerequisite group OR prerequisite group...).