我想在某些表上插入后创建一个通知。例如,每当用户插入评论时,我都会为管理员创建一个通知,告知该用户已创建评论。
我曾经在PHP中手动完成此操作,还不算那么糟糕,它是这样的:
// after the comment is created
Notification::create(....);
不错,但是有时候我可以给用户添加图像,帖子等的功能。因此,我必须记住每次插入通知。
因此,我正在考虑使用mysql触发器代替。但是我担心这会影响性能吗?
最后一件事,是否可以在多个表上插入后创建触发器?
谢谢,
在多个表上插入后是否可以创建触发器?
不,不可能。您必须为每个表创建一个单独的触发器。
我担心这会如何影响性能?
性能方面它不应该是一个灾难,虽然通过引入触发你人为你的表延长插入/更新操作(images
,posts
,...),有效地增加了锁定时间。
但是性能并不是要考虑的唯一因素。可维护性也很重要。通过创建触发器,您可以分散应用程序和数据库之间的应用程序逻辑。很难测试。触发器通常被遗忘,例如,当您传输模式或产生转储时。有时,您不希望在对表执行一些维护DML时触发它们。但是MySQL缺乏此功能。您必须为此使用解决方法。
底线:除非必要,请考虑不要使用触发器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句