Se eu tiver duas relações em um banco de dados, assim:
CREATE TABLE Courses (
CourseID int NOT NULL PRIMARY KEY,
Course VARCHAR(63) NOT NULL UNIQUE,
Code CHAR(4) NOT NULL UNIQUE
);
CREATE TABLE BookCourses (
EntryID int NOT NULL PRIMARY KEY,
BookID int NOT NULL,
Course CHAR(4) NOT NULL,
CourseNum CHAR(3) NOT NULL,
CourseSec CHAR(1) NOT NULL
);
e eu estabeleço um relacionamento de chave estrangeira entre os dois, assim:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Então você pode ver que o Courseatributo na BookCoursesrelação faz referência ao Codeatributo na Coursesrelação.
Minha pergunta é quando ocorre uma exclusão em qualquer uma das duas relações. De que maneira a exclusão é em cascata? Se eu excluir uma tupla na Coursesrelação, ela excluirá todas as tuplas de referência na BookCoursesrelação ou será o contrário?
Categoriestabela possui aCourseIDcomo Chave Primária enquanto aCoursestabela possui oEntryID. Você realmente precisa repensar suas opções de nomes.