[英]SQL Before Insert Trigger - insert into another table and update foreign key
[英]MySQL : automatically update a column in another table with foreign key, trigger or what?
我想在MySQL许多表之间进行一些自动更新,但是我想知道如何做到这一点。 这是一个例子:
Table `articles` : ID, TEXT, DATE, DELETED
Table `comments` : ID, TEXT, DATE, DELETED
Table `users` : ID, NAME, AGE, DELETED
Table `link` : ID, ARTICLE_ID, COMMENT_ID, USER_ID, DELETED
如您所料, link
表包含其他ID。 我已经这样设计了数据库,以使表的列数尽可能少。
我知道这里有很多问题,但是我真的不知道什么是最佳解决方案。 所以这是我想做的:
删除注释后(更新comments
集DELETED = 1,其中ID = ...),我想更新列link
.DELETED(=> 1)。
当删除用户时(更新users
将DELETED = 1设置为ID = ...),我想更新列link
.DELETED(=> 1)和articles
.TEXT(=> NULL)。
我知道我可以在link
.ARTICLE_ID和article
.ID之间使用外键,并且只需删除行即可。 但是,我对我的网站所使用的用户拥有有限的权利。 我将用一个功能更强大的用户来批处理一个批处理,以删除标记为DELETED的行以清理数据库。
有可能用FK来做,还是我应该使用触发器(我真的不知道如何使用它们)或其他东西?
我试图将FK放在DELETED列之间,但是当我更新注释行时,所有链接也都更新了:/
谢谢你的帮助。
我已经完成了我想要的两种解决方案:
link
表中的伪删除。 link
表中导致true delete。 因此,我可以与基本用户一起从我的网站中伪删除行。 而且我可以使用具有删除权限的用户来批量处理我的基地。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.