创建三个具有相同自增主键和名称的表

Create three tables with the same auto increment primary key and name

在线找不到合适的答案。我需要创建三个表作为下面的示例,一个具有自动递增 ID 的父表将 link 到具有相同确切 ID 的两个子表(主题和评论),如果该父 ID 被删除则级联返回.
关于如何解决的任何想法?
我在谷歌上搜索过,对如何解决这个问题感到非常困惑。我在 SQL 方面有相当多的经验,但在创建表和关系方面没有。

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
)

CREATE TABLE Comment
(
    ParentID INT NOT NULL PRIMARY KEY,
    Comment VARCHAR(100)
)

使用一对一关系 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
)

这称为一对一关系,因为外键的两端在其 table.

中是唯一的

虽然我不得不同意 Mitch Wheat 的评论,但级联删除还是要谨慎使用。通过指定级联删除,您告诉数据库引擎在删除父记录时删除相关记录。如果您尝试删除被另一个 table 引用的记录,则没有级联删除选项只会引发错误。作为开发人员,这迫使您考虑从父 table 中删除行的副作用,并且基本上充当 "Are you sure you want to delete?" 防止不需要的删除。