繁体   English   中英

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

[英]How to recalculate a field relating to another table (Yii2 MySQL)

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

对于您的情况,您可以使用mysql触发器 ,它们是事件处理程序,可在表的特定事件(例如INSERTUPDATEDELETE行)发生时激活。 这是有关使用触发器的文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM