我想在插入某些表后创建通知.例如,每当用户插入注释时,我都会为管理员创建一个通知,告知该用户已创建注释.
我以前在PHP中手动执行它,它没有那么糟糕,它是这样的:
// after the comment is created Notification::create(....);
不错,但有时候我会让用户能够添加图片,帖子,等等.所以我必须记住每次插入通知.
所以我正在考虑使用mysql触发器.但我担心这会影响性能?
最后一件事,是否可以在插入多个表后创建触发器?
谢谢,
插入多个表后是否可以创建触发器?
不,这是不可能的.您必须为每个表创建单独的触发器.
我担心这会影响性能吗?
性能方面它不应该是一个灾难,虽然通过引入触发你人为地延长你的表(插入/更新操作images
,posts
......),有效地增加了锁定时间.
但性能不是唯一要考虑的因素.可维护性也应该是重要的.通过创建触发器,可以在应用程序和数据库之间分散应用程序逻辑.测试起来比较困难.例如,当您传输模式或生成转储时,通常会忘记触发器.有时您不希望它们在您对表执行某些维护DML时触发.但MySQL缺乏这种能力.你必须使用变通方法.
底线:除非必须,否则请考虑不要使用触发器.