我很难解释这一点,所以让我用一个例子来说明。
我有一张评论表,它看起来像这样:
CREATE TABLE comments (
id INT UNSIGNED AUTO_INCREMENT,
parent_id INT UNSIGNED,
article_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
ip VARCHAR(255) NOT NULL,
submitted_at TIMESTAMP DEFAULT NOW(),
comment TEXT,
PRIMARY KEY (id),
CONSTRAINT fk_com_parent
FOREIGN KEY (parent_id)
REFERENCES comments (id)
CONSTRAINT fk_com_article
FOREIGN KEY (article_id)
REFERENCES articles (id)
CONSTRAINT fk_com_user
FOREIGN KEY (user_id)
REFERENCES users (id)
);
现在有意义的是如果parent_id
设置了,孩子和父母应该共享相同的article_id
。
评论的答案必须在同一篇文章上。那么有没有办法抑制这种情况呢?