Если один курс имеет предварительное условие ATMOST ONE.
CREATE TABLE course_catalog (
course_no <type> PRIMARY KEY,
... other fields
prerequisite_course_no <type same as course_no>,
FOREIGN KEY(prerequisite_course_no) REFERENCES course_catalog(course_no)
)
оставьте поле prerequisite_course_no пустым, если нет никаких предварительных условий.
Если один курс может иметь МНОГИЕ предварительные условия.
CREATE TABLE course_catalog (
course_no <type> PRIMARY KEY,
... other fields
);
CREATE TABLE course_prerequisites (
course_no <type>,
prerequisite_course_no <type same as course_no>,
PRIMARY KEY(course_no,prerequisite_course_no),
FOREIGN KEY(prerequisite_course_no) REFERENCES course_catalog(course_no),
FOREIGN KEY(course_no) REFERENCES course_catalog(course_no)
)