次のように、データベースに2つの関係がある場合:
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
);
そして、私はこのように2つの間に外部キー関係を確立します:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
次にCourse
、BookCourses
リレーションのCode
属性がリレーションの属性を参照していることがわかりますCourses
。
私の質問は、削除が2つの関係のどちらかで発生した場合、削除はどのようにカスケードされるのですか?Courses
リレーション内のタプルを削除すると、リレーション内のすべての参照タプルが削除さBookCourses
れますか、それともその逆ですか?
混乱を避け、DB構造を明確にするために、適切な列名を使用してください。
—
Gunjan Shah 2013
Categories
表がありCourseID
ながら、主キーとしてCourses
テーブルを持っていますEntryID
。あなたは真剣にあなたの名前の選択を再考する必要があります。