Используйте отношение 1 к 1 с on delete cascade
:
CREATE TABLE Parent(
ParentID INT NOT NULL IDENTITY PRIMARY KEY,
Email VARCHAR(50) NOT NULL,...
)
CREATE TABLE Subject(
ParentID INT NOT NULL PRIMARY KEY,
Subject,
CONSTRAINT fk_SubjectParentId FOREIGN KEY (ParentID)
REFERENCES Parent (ParentID) ON DELETE CASCADE
)
CREATE TABLE Comment(
ParentID INT NOT NULL PRIMARY KEY,
Comment VARCHAR(100),
CONSTRAINT fk_CommentParentId FOREIGN KEY (ParentID)
REFERENCES Parent (ParentID) ON DELETE CASCADE
)
Это называется отношением 1 к 1, поскольку оба конца внешнего ключа уникальны в своей таблице.
Хотя я должен согласиться с комментарием Митча Уитя, каскадное удаление следует использовать с осторожностью.указав каскадное удаление, вы указываете ядру базы данных удалять связанные записи всякий раз, когда удаляется родительская запись.Отсутствие этой опции каскадного удаления просто выдаст ошибку, если вы попытаетесь удалить запись, на которую ссылается другая таблица.Это заставляет вас, как разработчика, задуматься о побочных эффектах удаления строк из родительской таблицы и в основном действует как «Вы уверены, что хотите удалить?»Защита от нежелательных удалений.