0
假設我有上Article
下表外鍵級聯刪除時
User,Article,Comment
一個User
可以Comment
或寫Article
。
我想要的行爲:
- 當我刪除
User
應該刪除他的所有Articles
和Comments
- 當我刪除
Article
應該刪除其所有Comments
所以我認爲我應該使用FOREIGN KEYS
並試圖將上面的模型設爲
CREATE TABLE [User](
UserId int PRIMARY KEY IDENTITY(1,1),
Username nvarchar(50) NOT NULL
)
CREATE TABLE [Article](
ArticleId int PRIMARY KEY IDENTITY(1,1),
UserId int NOT NULL,
FOREIGN KEY(UserId) references [User](UserId) ON DELETE CASCADE
)
CREATE TABLE [Comment](
CommentId int PRIMARY KEY IDENTITY(1,1),
UserId int Not NULL,
ArticleId int NOT NULL ,
FOREIGN KEY(UserId) references [User](UserId) ON DELETE CASCADE,
FOREIGN KEY(ArticleId) references [Article](ArticleId) ON DELETE CASCADE
)
但問題自帶Comment
造成
Introducing FOREIGN KEY constraint 'FK__Comment__Article__32E0915F' on table 'Comment' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
我的問題是你會如何模擬這種行爲,並仍然使用CASCADE ON DELETE
和FOREIGEN KEYS
?
不相關的問題,但你可能想'Username'有超過一個字符。 –
@GordonLinoff爲什麼不能!我把它做成50讓你開心;) – Bread