如何重新计算与另一个表相关的字段(Yii2 MySQL)

时间:2015-08-03 01:11:28

标签: php mysql sql database yii2

我有MySQL数据库和表'User',其中包含字段'rating'。另外,我有'rating'表和'user_id'和'value'列。我需要在“评级”表中自动获取“价值”列的中间值,并在每次有人为该用户投票时或者我们在数据库中添加/更改行时将其放入用户的“评级”字段。我在Yii2中的评级模型中尝试了“afterSave()”功能,但只有在视图中从表单中保存评级值时才能使用(通过使用单选按钮进行投票)。如果我更改数据库中的值,它当然不会重新计算'rating'字段。我想我需要用SQL做一些事情,而不是框架,我是对的吗?这通常是怎么做的?

1 个答案:

答案 0 :(得分:0)

对于您的情况,您可以使用mysql triggers,这是一种事件处理程序,在表格发生特定事件时激活,例如 INSERT UPDATE DELETE 行。以下是关于使用触发器的an article