我有MySQL数据库和表'User‘,其中有字段'rating’。另外,我还有一个包含'user_id‘和'value’列的'Rating‘表。每次有人投票给这个用户时,我需要自动获取'Rating‘表中' value’列的中位值,并将其放到用户的'rating‘字段中,或者只是在数据库中添加/更改行。我在Yii2中尝试了我的评分模型中的"afterSave()“函数,但它只有在从视图中的表单保存评分值时才有效(通过使用单选按钮投票)。当然,如果我更改数据库中的值,它不会重新计算“rating”字段。我猜我需要用SQL做一些事情,而不是框架,对吗?这通常是如何完成的?
发布于 2015-08-03 11:47:26
对于您的情况,您可以使用mysql triggers,这是一种事件处理程序,它在表的特定事件发生时激活,例如插入、更新或删除行。下面是关于使用触发器的an article。
https://stackoverflow.com/questions/31778167
复制相似问题