我有MySQL数据库和表'User',其中包含字段'rating'。另外,我有'rating'表和'user_id'和'value'列。我需要在“评级”表中自动获取“价值”列的中间值,并在每次有人为该用户投票时或者我们在数据库中添加/更改行时将其放入用户的“评级”字段。我在Yii2中的评级模型中尝试了“afterSave()”功能,但只有在视图中从表单中保存评级值时才能使用(通过使用单选按钮进行投票)。如果我更改数据库中的值,它当然不会重新计算'rating'字段。我想我需要用SQL做一些事情,而不是框架,我是对的吗?这通常是怎么做的?
答案 0 :(得分:0)
对于您的情况,您可以使用mysql triggers,这是一种事件处理程序,在表格发生特定事件时激活,例如 INSERT , UPDATE 或 DELETE 行。以下是关于使用触发器的an article。