为了账号安全,请及时绑定邮箱和手机立即绑定

关于数据库层级删除数据的问题

关于数据库层级删除数据的问题

呼如林 2018-07-23 09:08:36
比如有一个学校,学校下面有N个学院,学院下有N个班级,班级下有N个学生。没个表都设置好了外键。 现在我要删除这个学校,怎么删除?  以后学生可能上传N张照片,照片可能有N条评论,评论可能有N个人点支持。。。。。 如何做才能不管这个层有多少个?
查看完整描述

4 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

建议:不要使用数据库的级别的级联删除,而改用程序来实现这些删除操作

否则很容易出现数据完整性无法保证的问题,甚至如果数据库设计有问题的话可能导致删除意外的数据造成损失,就算数据库设计没有问题,这种自动删除也基本上属于不可控删除,应该避免


查看完整回答
反对 回复 2018-07-25
?
跃然一笑

TA贡献1826条经验 获得超6个赞

在设置外键的时候可以加个选项

on delete cascade

这样在1:n的情况下,1方删除了n方会全部删除


查看完整回答
反对 回复 2018-07-25
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

建议使用触发器,只要学校将被删,就先删除相对应的班级和学生。

查看完整回答
反对 回复 2018-07-25
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

不能用联机,都要用程序来控制,不要怕麻烦,用事务来实现,其实如果事前设计好的,操作都应该是分来的

查看完整回答
反对 回复 2018-07-25
  • 4 回答
  • 0 关注
  • 1134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信