Jeśli mam dwie relacje w bazie danych, na przykład:
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
);
i ustalam relację klucza obcego między nimi, na przykład:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Wtedy możesz zobaczyć, że Courseatrybut w BookCoursesrelacji odwołuje się do Codeatrybutu w Coursesrelacji.
Moje pytanie brzmi: kiedy następuje usunięcie w którejkolwiek z dwóch relacji, w jaki sposób przebiega kaskada usuwania? Jeśli usunę krotkę w Coursesrelacji, czy spowoduje to usunięcie wszystkich odwołujących się krotek w BookCoursesrelacji, czy też jest odwrotnie?
Categoriestabela maCourseIDjako klucz podstawowy, podczas gdyCoursesstół maEntryID. Musisz poważnie przemyśleć swoje wybory dotyczące nazewnictwa.