ProgramCourseEnrollments were already unique on (program_enrollment, course_enrollment) by nature of the OneToOneField on course_enrollment. However, this only affects realized enrollments. For waiting enrollments, we need to add a uniqueness constraint on (program_enrollment, course_key).