我正在设计一个带有php和mysql的学生管理系统
哪里有组织有学生和老师
例子
有组织= stackoverflow.com它有两种类型的用户员工和客户端
连接到我们的组织的所有详细信息都存储在表X中,并且表Y中有员工详细信息,表Z中有客户详细信息
有许多不同的组织,他们都有不同的客户和员工
现在,如果我从表x中删除一个组织,我希望其所有细节都从数据库中删除(包括分别从表y和z中删除所有员工和客户)
有没有办法只用数据库(mysql)或我必须编写一个应用程序来做到这一点
答案 0 :(得分:1)
您可以通过在表定义上声明ON DELETE CASCADE
来轻松完成此任务:
CREATE TABLE organizations (
org_id PRIMARY KEY;
name
);
CREATE TABLE clients (
id PRIMARY KEY;
FOREIGN KEY (org_id)
REFERENCES organizations (org_id)
ON DELETE CASCADE
);
CREATE TABLE employees (
employee_id integer PRIMARY KEY,
FOREIGN KEY (org_id)
REFERENCES organizations (org_id)
ON DELETE CASCADE
);