Si j'ai deux relations dans une base de données, comme ceci :
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
);
et j'établis une relation de clé étrangère entre les deux, comme ceci :
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Alors vous pouvez voir que le Course
dans l'élément BookCourses
fait référence à la relation Code
dans le Courses
relation.
Ma question est la suivante : lorsqu'une suppression se produit dans l'une ou l'autre des deux relations, dans quel sens la suppression se produit-elle en cascade ? Si je supprime un tuple dans la relation Courses
supprimera-t-elle tous les tuples référents dans la relation BookCourses
ou est-ce l'inverse ?
12 votes
On se demande seulement pourquoi le
Categories
La table a unCourseID
comme clé primaire, tandis que leCourses
La table a leEntryID
. Vous devez sérieusement repenser vos choix de noms.8 votes
Veuillez utiliser les noms de colonnes appropriés afin d'éviter toute confusion et de clarifier la structure de la base de données.