我有一个名为user
的表,主键为user_id
。
我还有另一个名为follows
的表。该表用于存储哪个用户关注哪个用户(类似于twitter关注功能)。
这是我的关注表。
CREATE TABLE `follows` (
`id` int(11) NOT NULL,
`orginal_user_id` int(11) NOT NULL,
`follow_user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `follows`
ADD PRIMARY KEY (`id`);
因此,如何更改此表以将orginal_user_id
和follow_user_id
设置为用户表user_id
的外键...
如果从用户表中删除了一个用户,我想自动删除以下表中的行,即该用户ID出现在orginal_user_id列或follow_user_id列上。
答案 0 :(得分:2)
您可以在表中使用级联删除约束:
CREATE TABLE follows (
id int(11) NOT NULL PRIMARY KEY,
orginal_user_id int(11) NOT NULL,
follow_user_id int(11) NOT NULL,
CONSTRAINT fk_original_user FOREIGN KEY (orginal_user_id)
REFERENCES user(id) ON DELETE CASCADE,
CONSTRAINT fk_follow_user FOREIGN KEY (follow_user_id)
REFERENCES user(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;