为了良好的实践和维护数据完整性,我通常使用外键,但我总是面临以下问题"问题";尝试删除某些数据时:
我有一个带有主组表的场景:组
我还有其他几个与组相关的表,例如:
user_group(用户和组之间的关系表(
course_group(课程和组之间的关系表(
当删除一个组时,我总是需要在…之前删除相关表中对该组的引用。。。但目前我有几个关系表,我的排除代码最终变得相当大。
我的问题是:有没有什么函数或库可以让我更自动地完成这项工作?一个函数,它可能会为我检查所有这些引用并已排除。如果有人知道如何以尽可能少的代码数量使其更快,谢谢注意:我目前正在使用PHP
您希望on delete cascade
作为子表外键约束中的一个选项。
假设表groups
看起来像:
create table groups (
id int primary key,
... -- other columns here
);
然后将子表user_groups
声明为:
create table user_groups (
... -- some columns here
group_id int,
foreign key (group_id) references groups(id) on delete cascade
)